我试图以这种方式将字符串中的每个单词和/或数字/符号组合输入加倍:
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
我花了一段时间用这个,我似乎无法弄清楚如何使双倍工作正常或保持双重部分彼此分开。
答案 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( " " );
}