java String删除空格并添加字母

时间:2015-09-14 20:25:28

标签: java android string

如果有人知道我怎么能做到这一点。 假设我有一个字符串:

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

如何检测字符串中是否有多个相同的单词。

3 个答案:

答案 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"

这可以防止空字符串,其中" "应该变为""