我在运行(看似简单的)代码时得到了一些奇怪的输出。这是我拥有的:
import java.util.Scanner;
public class TestApplication {
public static void main(String[] args) {
System.out.println("Enter a password: ");
Scanner input = new Scanner(System.in);
input.next();
String s = input.toString();
System.out.println(s);
}
}
编译成功后得到的输出是:
Enter a password:
hello
java.util.Scanner[delimiters=\p{javaWhitespace}+][position=5][match valid=true][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]
这有点奇怪。发生了什么以及如何打印 s
的值?
最佳答案
您将获得 Scanner 对象本身返回的 toString()
值,这不是您想要的,也不是您使用 Scanner 对象的方式。相反,您想要的是 Scanner 对象获得的数据。例如,
Scanner input = new Scanner(System.in);
String data = input.nextLine();
System.out.println(data);
请阅读有关如何使用它的教程,因为它会解释所有内容。
编辑
请看这里:Scanner tutorial
另请查看 Scanner API这将解释 Scanner 的方法和属性的一些细节。
关于java - 在 Java 中打印字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8250215/