编写以下两个函数
//以空格(单个或多个)为分隔符,将line中的元素抽取出来,放入一个List
public static List<String> convertStringToList(String line)
//在list中移除掉与str内容相同的元素
public static void remove(List<String> list, String str)
输入样例
1 2 1 2 1 1 1 2
1
11 1 11 1 11
11
2 2 2
1
1 2 3 4 1 3 1
1
输出样例
[1, 2, 1, 2, 1, 1, 1, 2]
[2, 2, 2]
[11, 1, 11, 1, 11]
[1, 1]
[2, 2, 2]
[2, 2, 2]
[1, 2, 3, 4, 1, 3, 1]
[2, 3, 4, 3]
参考代码:
import java.util.*;
public class Main {
public static List<String> convertStringToList(String line){
List<String>list=new ArrayList<String>();
String str[]=line.split("\\s+");
/* java String.split()使用注意:
* 根据给定的正则表达式(regex)的匹配来拆分此字符串
* 1 要注意转义字符:“.”和“|”都是转义字符,必须得加"\\"。同理:*和+也是如此的
* 2 “\s”表示 空格,回车,换行等空白符
* 3 “+”号表示一个或多个的意思 “\S” 表示全部空格
* 4 " "只表示单个空格,所以不一样
*/
for(int i=0;i<str.length;i++){
list.add(str[i]);
}
return list;
}
public static void remove(List<String> list, String str){
for(int i=0;i<list.size();) {
if(list.get(i).equals(str)) {
list.remove(i);
i=0;
}else i++;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()){
List<String> list = convertStringToList(sc.nextLine());
System.out.println(list);
String word = sc.nextLine();
remove(list,word);
System.out.println(list);
}
sc.close();
}
}