所以我试图根据字符串的长度验证用户输入。
String v=scan.next();
v=v.trim();
因此,如果输入是" 0 1 2 3"结果字符串是0123对吗?由于某种原因,它返回了第一个指数的价值并切断了其余部分,我不知道为什么。
答案 0 :(得分:4)
因此,如果输入是" 0 1 2 3"结果字符串是0123对吗?
trim()
方法删除前导和尾随空格(意思是字符串的开头和结尾),而不是中间的那些空格。字符串。
如果你想删除所有类型的空格(如空格和标签)任何地方,你应该使用:
v = v.replaceAll("\\s+", "");
(+不是必需的,顺便说一句,但它的表现与没有不同。首选" \ s"如果你没有连续多个空格。)
如果您只想删除空格字符,因为您解析了非常具体的输入,请使用:
v = v.replace(" ", "");
出于某种原因,它返回了第一个索引的值并切断了其余部分,我不知道为什么。
您的问题在于您只使用scan.next()
来获取您的意见。它返回下一个标记,而不是整行的用户输入。如果您想要整行,请改用以下内容:
String v = scan.nextLine()