Scanner in= new Scanner(System.in);
int len=in.nextInt();
String s=in.next();
char[] ch=s.toCharArray();
System.out.println(len);
System.out.println(ch.length);
我通过提供输入
运行此代码段400004
//and a string of length 400004
输出
400004
8190
我知道当我们使用toCharArray()时它会返回一个与String相同长度的char数组。但在这里它是不同的。 我无法理解这是多么可能。 请帮帮我。
答案 0 :(得分:0)
您肯定会复制并粘贴包含换行符或其他字符的字符串,这会使next
方法返回Scanner
。因此,只有部分字符串被复制到s
。
答案 1 :(得分:0)
我尝试了这段代码,由于命令提示符缓冲区的限制,在String变量中只输入了长度= 8190字符串。
您可以尝试从文本文件中获取输入,它可以正常工作。
请参阅我的代码,以供参考。
Scanner in = new Scanner(System.in);
int n=0;
String number=null;
BufferedReader br = null;
FileReader fr = null;
try {
br = new BufferedReader(new FileReader("txt file path"));
String len= br.readLine();
n=Integer.parseInt(len);
number = br.readLine();
}
catch (IOException e) {
e.printStackTrace();
}