好的,所以我正在尝试创建一个带2个字符串的方法,第二个字符串参数是要从第一个字符串参数中删除的字符串。我无法弄清楚我的代码有什么问题?有帮助吗?感谢。
我正在尝试做的例子:如果你传入“a,b,c”作为第一个参数而“,”作为第二个参数,你会得到“abc”。
public List<String> split(String string, String delimiter){
//create and init arraylist.
List<String> list = new ArrayList<String>();
//create and init newString.
String newString="";
//add string to arraylist 'list'.
list.add(string);
//loops through string.
for(int i=0;i<string.length();i++){
//stores each character from string in newString.
newString += string.charAt(i);
}
newString.replace(delimiter, "");
//remove string from arraylist 'list'.
list.remove(string);
//add newString to arraylist 'list'.
list.add(newString);
return list;
答案 0 :(得分:1)
非常简单,不确定你对这些列表做了什么,但根据你的措辞问题,如果你想要的只是来自abc
的{{1}},那就可以了......
a,b,c
答案 1 :(得分:1)
根据方法名称,返回类型和参数名称判断,您似乎正在尝试重新发明轮子 - 您只需要一行:
public List<String> split(String string, String delimiter){
return Arrays.asList(string.split("\\" + delimiter));
}
我把反斜杠放在那里,以防分隔符本身是一个正则表达式,就像一个点。
答案 2 :(得分:0)
public List<String> split(String str, String delimiter){
//Is the List of strings mandatory? Or is it part of a solution
//that didn't originally have to be so?
String[] temp;
List<String> newStrings=new ArrayList<String>();
//The answer was split(String regex) all along!
temp = str.split(delimiter);
for(int i=0; i<temp.length; i++){
newStrings.add(temp[i]);
}
return newStrings;
}
}
这将产生您所需的规格,但要注意这将包含空格作为单独的字符串。如果您要求它排除空格,我会更新。