【发布时间】:2017-06-21 14:20:53
【问题描述】:
我希望以下程序接受用户输入,将其存储在数组中,然后在用户键入 stop 时重复它。
但是,它将其余的值打印到 100 为null,这是我需要删除的。我尝试了几种不同的方法,但它对我不起作用。
这基本上是我到目前为止所得到的(在 Stack 上其他问题的帮助下):
public static void main(String[] args) {
String[] teams = new String[100];
String str = null;
Scanner sc = new Scanner(System.in);
int count = -1;
String[] refinedArray = new String[teams.length];
for (int i = 0; i < 100; i++) {
str= sc.nextLine();
for(String s : teams) {
if(s != null) { // Skips over null values. Add "|| "".equals(s)" if you want to exclude empty strings
refinedArray[++count] = s; // Increments count and sets a value in the refined array
}
}
if(str.equals("stop")) {
Arrays.stream(teams).forEach(System.out::println);
}
teams[i] = str;
}
}
【问题讨论】:
-
也许您可以将团队转换为列表,然后像 stackoverflow.com/questions/1279476/… 中所说的那样截断它
-
@ZeldaZach 在这种情况下不需要截断
List。它将仅包含已添加的元素。
标签: java arrays string java.util.scanner