如何使arrayList只读取字符串而不是int?

时间:2018-06-17 10:05:08

标签: java

  

编写一个名为countWords的方法,它接受String的ArrayList作为参数和   打印出以-A‖或-a‖开头的单词数(即字符串),并在一行上打印超过5个字符的所有单词。

我的解决方案就像

int count=0;
    String[] st=null;

    Scanner input=new Scanner(System.in);
    ArrayList<String> array = new ArrayList<String>();
    System.out.println("please input something");

while(input.hasNext()) {
        String st1=input.next();
        array.add(st1);

    }


    for(int i=0; i<array.size();i++) {
        if(array.get(i).startsWith("a")||array.get(i).startsWith("A")) {
            count++;
        }
    }
        for(int j=0; j<array.size(); j++) {
            if(array.get(j).length()>5) 
                st[j]=array.get(j);

        }

        System.out.println(count);
        System.out.println(st);
}

但是在字符串

中输入将无止境

2 个答案:

答案 0 :(得分:0)

正如你问题的最后一行所说的那样

<强> but there will be no end for typing in Strings

那是因为你没有提供任何结束while循环的方法。

while(input.hasNext())

将永远运行并等待下一个用户输入。输入完成后,您必须break while循环。

<强>之后

As the question said "prints out the number of words that start with A or a and prints all words longer than 5 characters on one line."

为此,您可以遍历ArrayList并检查

if(array.get(i).startsWith("A") || array.get(i).startsWith("a")) count++;

if(array.get(i).length()>5) System.out.print(array.get(i)+" ");

并打印循环后的A或次数

System.out.println("\n Number of word with A or a:"+count);

以下是您的代码的工作实现

public static void main(String[] args) {
    int count=0;
    String[] st=null;
    Scanner input=new Scanner(System.in);
    ArrayList<String> array = new ArrayList<String>();
    System.out.println("please input something");
    //System.out.println(input.hasNext());
while(input.hasNext()) {
        String st1=input.next();
        //System.out.println((int) st1.charAt(0));
        if(st1.equals("exit")) break;
        array.add(st1);

    }


    for(int i=0; i<array.size();i++) {
        if(array.get(i).startsWith("A") || array.get(i).startsWith("a")){
            count++;
        }
        if(array.get(i).length()>5) {
            System.out.print(array.get(i)+" ");
        }

    }
    System.out.println("\nNumber of word with A or a:"+count);
}

<强> to end the loop you have to type exit.

答案 1 :(得分:0)

以下是您问题的解决方案..

const newObject = Object.keys(oldobject).reduce((a, oldKey) => {
    if (!categorytobedeleted.includes(oldobject[oldKey].id)) {
        a[oldKey] = oldobject[oldKey]
    }
    return a
}, {})