运行(看似简单)代码时,我会收到一些奇怪的输出.这是我有的:
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 input = new Scanner(System.in); String data = input.nextLine(); System.out.println(data);
请阅读有关如何使用的教程,因为这将解释所有.
编辑
请看这里:Scanner tutorial
还可以看看Scanner API,这将解释扫描仪方法和属性的一些更精细的点.