我正在为学校做一个项目,一个迷你文本编辑器。其中一个基本功能是让用户插入文本。我们要控制输入,使用循环,叮咬和数组。
do{
System.out.println("Insira o seu texto (duplo ENTER volta ao Menu):");
linhas [nLinhas] = input.nextLine();
}
while (!Arrays.asList(linhas).contains(""));
我要求用户输入文字,当他们进行双重输入时,他们将返回菜单。然而,这种情况并没有发生......我在网上搜索中添加了这些共同点,但是我不能使用它,否则我将受到惩罚......
我必须用一段时间来做这件事,那么如何设置呢?我已经尝试使用拆分,因为目标是只要插入带有“”(无)的行,就会停止文本输入,但它不起作用...
任何帮助都会很棒!
更新:
switch (escolhaMenu){
case 'i':
case 'I':
System.out.println("\nEscolheu a opção: \"Inserir linhas no fim (termine com uma linha vazia)\"\n");
do{
System.out.println("Insira o seu texto (duplo ENTER volta ao Menu):");
linhas [nLinhas] = input.nextLine();
}
while (!Arrays.asList(linhas).contains(""));
break;
答案 0 :(得分:1)
不是吗
while (!Arrays.asList(linhas).contains(""));
在中,您想检查数组是否包含空字符串?
另外,我看到你关于无法使用“包含”的说明。 。 。试试这个:
boolean done = false;
do {
do stuff
String input = input.nextLine();
if (input.equals("") {
done = true;
}
} while (!done) ;
答案 1 :(得分:0)
重写,因为问题确实改变了......
如果您读入阵列......它有多大?你是否需要第二个条件才能超过数组长度?
代码中的一些评论:
do{
System.out.println("Insira o seu texto (duplo ENTER volta ao Menu):");
// Array index for nLinhas is never increased?
// Maybe linhas[++nLinhas] = input.nextLine();
linhas [nLinhas] = input.nextLine();
}
//Why check whole array? Wouldn't it be enough to
//while("".equals(linhas[nLinhas]))
while (!Arrays.asList(linhas).contains(""));
答案 2 :(得分:0)
我不明白你为什么把这条线放到一个数组中,然后检查整个数组中的""。您应该只是检查您刚刚阅读的内容。为什么之前发生的事情很重要?