将字符串中的每个单词或数字组合加倍

时间:2016-04-02 20:11:00

标签: java string char

我试图以这种方式将字符串中的每个单词和/或数字/符号组合输入加倍:

My name is >> My My name name is is
148 !! 697 >> 148 148 !! !! 697 697
The code is 428 >>  The The code code is is 428 428

我花了一段时间用这个,我似乎无法弄清楚如何使双倍工作正常或保持双重部分彼此分开。

4 个答案:

答案 0 :(得分:3)

使用regular expression,您可以非常简单地完成此操作。以下groups所有不是空格(\S)的字符,并使用反向引用$1自行替换它们两次。

public static void main(String[] args) {
    String[] str = { "My name is", "148 !! 697", "The code is 428" };
    Pattern pattern = Pattern.compile("(\\S+)");
    for (String s : str) {
        String res = pattern.matcher(s).replaceAll("$1 $1");
        System.out.println(res);
    }
}

打印

My My name name is is
148 148 !! !! 697 697
The The code code is is 428 428

答案 1 :(得分:1)

String phrase = "My name is";
StringBuilder result = new StringBuilder();
for(String word : phrase.split(" ")) {
    result.append(word).append(" ").append(word).append(" ");
}

String finalResult = result.toString().trim(); //trim() removes the last, extraneous space.

答案 2 :(得分:0)

循环通过字符串,并为每个单词将其附加两次到一个新的可变字符串。

答案 3 :(得分:0)

通过语言,我假设你的意思是以空格分隔的项目?

String doubleit(String inpString) {
    List<String> doubles = new ArrayList<String>();
    String [] items = inpString.split();
    for ( String item : items ) {
        doubles.add( item );
        doubles.add( item );
    }
    return doubles.join( " " );
}