在Java中,如果要通过char或String拆分String,可以通过split方法执行此操作,如下所示:
String[] stringWords = myString.split(" ");
但是,我想现在想要使用stringWords中的字符串创建一个新的String,使用它们之间的char *
。有没有for / while指令可以做任何解决方案吗?
这是一个明显的例子:
String myString = "This is how the string should be";
String iWant = "This*is*how*the*string*should*be";
有人让我更清楚为什么我不想只使用replace()函数。我不想简单地使用它,因为字符串数组的内容(在我的例子中是数组stringWords)改变了它的内容。
以下是一个例子:
String myString = "This is a string i wrote"
String[] stringWords = myString.split(" ");
myAlgorithmFucntion(stringWords);
以下是最终字符串更改的示例:
String iWant = "This*is*something*i*wrote*and*i*don't*want*to*do*it*anymore";
答案 0 :(得分:5)
如果您不想使用replace
或类似内容,可以使用Apache Commons StringUtils
:
String iWant = StringUtils.join(stringWords, "*");
或者,如果您不想使用Apache Commons,那么根据Rory Hunter的评论,您可以实现自己的here。
答案 1 :(得分:1)
是的,有解决办法,用特殊字符分割字符串,如'*','。'等你必须使用特殊的反击。
String myString = "This is how the string should be";
iWant = myString.replaceAll(" ","*"); //or iWant = StringUtils.join(Collections.asList(myString.split(" ")),"*");
iWant = "This*is*how*the*string*should*be";
String [] tab = iWant.split("\\*");
答案 2 :(得分:-2)
尝试这样的事情,因为你不想使用replace()函数
char[] ans=myString.toCharArray();
for(int i =0; i < ans.length; i++)
{
if(ans[i]==' ')ans[i]='*';
}
String answer=new String(ans);
答案 3 :(得分:-2)
尝试循环String数组:
String[] stringWords = myString.split(" ");
String myString = "";
for (String s : stringWords){
myString = myString + "s" + "*";
}
只需添加逻辑以删除String的最后*
。
使用StringBuilder选项:
String[] stringWords = myString.split(" ");
StringBuilder myStringBuilder = new StringBuilder("");
for (String s : stringWords){
myStringBuilder.append(s).append("*");
}