分割后Java获得相同的String

时间:2014-03-04 09:43:29

标签: java string split

在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";

4 个答案:

答案 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("*");
}