编写一个名为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);
}
但是在字符串
中输入将无止境答案 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
}, {})