[英]Split method is splitting into single String
我有一个小问题:我有一个程序,用空格(仅单个ws)将String拆分,但是当我将该值分配给String数组时,它里面只有一个对象。 (我只能打印“ 0”索引)。 这是代码:
public void mainLoop() {
Scanner sc = new Scanner(System.in);
String parse = "#start";
while (!parse.equals("#stop") || !parse.isEmpty()) {
parse = sc.next();
String[] line = parse.split("[ ]");
System.out.println(line[0]);
}
}
“ mainLoop”是通过实例“ main”从实例中调用的。
默认情况下, Scanner#next
使用空格分隔输入。 您可以使用nextLine
从扫描仪读取而不使用此分隔符模式
parse = sc.nextLine();
评论中提到的先前观点仍然有效
while (!parse.equals("#stop") && !parse.isEmpty()) {
parse = sc.nextLine();
String[] line = parse.split("\\s");
System.out.println(Arrays.toString(line));
}
当您在扫描仪上调用next
,它将从输入中返回下一个令牌。 例如,如果用户将编写文本
foo bar
的第一次调用next
会返回"foo"
和下一个呼叫next
会返回"bar"
。
如果要以"foo bar"
(整行)的形式获取字符串,则可以考虑使用nextLine
而不是next
。
另外,您不必在[]
放置空格,因此可以使用split(" ")
或使用字符类\\s
来表示空格split("\\\\s")
,而不是split("[ ]")
split("\\\\s")
。
您似乎遇到的另一个问题是
while( !condition1 || !condition2 )
如果您想说循环应该一直持续到满足两个条件中的任何一个,那么您应该将它们写成表格
while( !(condition1 || condition2) )
或使用戴摩根定律
while( !condition1 && !condition2 )
如果要按单个空格分割,为什么不这样做?
String[] line = parse.split(" ");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.