如果有人知道我怎么能做到这一点。 假设我有一个字符串:
String word = " adwq ijsdx djoaaiosj czxc f wqeqw xcx ";
我想删除空格并在每个单词之前添加另一个符号或字母?所以我可以得到这样的东西:
String newWord ="$adwq $ijsdx $djoaaiosj $czxc $f $wqeqw $xcx";
我试过这样的事情:
String newWord = word.replaceAll("\\s+"," ").replaceAll(" "," $");
我得到这样的东西:(
String newWord = $adwq $ijsdx $djoaaiosj $czxc $f $wqeqw $xcx $";
如何检测字符串中是否有多个相同的单词。
答案 0 :(得分:1)
show open tables where in_use>0;
答案 1 :(得分:0)
我会做什么:
newWord = newWord.trim(); // This would remove trailing and leading spaces
String [] words = newWord.split("\\s+"); //split them on spaces
StringBuffer sb = new StringBuffer();
for(int i=0;i<words.length-1;i++){
sb.append('$');
sb.append(words[i]);
sb.append(' ');
}
if(words.length>0){
sb.append('$');
sb.append(words[words.length-1]);
}
newWord = sb.toString();
对于您的其他问题,您可以使用区域设置HashSet并检查是否已经添加了每个单词。
答案 2 :(得分:0)
首先修剪字符串,然后合并replaceAll
次来电:
String word = " adwq ijsdx djoaaiosj czxc f wqeqw xcx ";
String newWord = word.trim().replaceAll("^\\b|\\s*(\\s)", "$1\\$");
System.out.println("'" + word + "'");
System.out.println("'" + newWord + "'");
输出
' adwq ijsdx djoaaiosj czxc f wqeqw xcx '
'$adwq $ijsdx $djoaaiosj $czxc $f $wqeqw $xcx'
说明的
trim()
调用将删除前导和尾随空格:
"adwq ijsdx djoaaiosj czxc f wqeqw xcx"
正则表达式包含两个由|
(or
)分隔的表达式。第二个(\\s*(\\s)
)将用空格($1
)和美元符号(\\$
)替换空格序列:
"adwq $ijsdx $djoaaiosj $czxc $f $wqeqw $xcx"
第一个表达式(^\\b
)将使用美元符号替换字符串开头的单词边界(没有空格,因为$1
为空):
"$adwq $ijsdx $djoaaiosj $czxc $f $wqeqw $xcx"
这可以防止空字符串,其中" "
应该变为""
。