我已进行了此练习,但是我很难找到赶上新路线的方法。你能帮我吗?
编写一个程序,该程序读取用户输入直到空行。对于每个非空字符串,程序将字符串按空格分隔,然后将包含av的段打印在新行上。 这是mycode:
public class AVClub {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<String> str = new ArrayList();
String line;
while (!(line = scanner.nextLine()).equals("")){
str.add(line);
}
for(int i=0; i<str.size();i++){
if(str.get(i).contains("av")){
System.out.println(str.get(i));
}
}
}
}
答案 0 :(得分:1)
以下要求已在您的代码中错误实现:
对于每个非空字符串,程序将字符串按空格分隔,然后 然后将包含av的片段打印在新行上。
应该是:
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<String> str = new ArrayList();
String line;
System.out.print("Enter sentences (blank line to terminate): ");
while (!(line = scanner.nextLine()).equals("")) {
str.add(line);
}
System.out.println("Words containig 'av' are: ");
for (int i = 0; i < str.size(); i++) {
line = str.get(i);
String[] words = line.split("\\s+"); // Split the string on spaces
for (String word : words) {
if (word.contains("av")) {
System.out.println(word);
}
}
}
}
}
说明::您必须检查每个句子中的每个单词是否包含av
。您的代码检查每个句子中的av
。
示例运行:
Enter sentences (blank line to terminate): harry is a good boy
my name is avinash
Is there any seats available in the aviation training
hello world
Words containig 'av' are:
avinash
available
aviation
注意:如果您需要以不区分大小写的方式检查av
,请按照if (word.toUpperCase().contains("AV"))
进行操作。