识别字符串数组中的文本

时间:2015-12-04 14:51:49

标签: java string

我正在为学校做一个项目,一个迷你文本编辑器。其中一个基本功能是让用户插入文本。我们要控制输入,使用循环,叮咬和数组。

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;

3 个答案:

答案 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)

我不明白你为什么把这条线放到一个数组中,然后检查整个数组中的""。您应该只是检查您刚刚阅读的内容。为什么之前发生的事情很重要?

相关问题