从字符串中删除字符?

时间:2011-09-21 21:05:42

标签: java string replace

我在输入字符串中搜索以下文字:+Bob

如果程序找到+Bob,我希望它在Bob之前删除+

但是,我不希望程序消除所有+,只有+ 之前或之后 Bob,无论是否有插入空格。因此,例如+ Bob的字符串仍计为+Bob

3 个答案:

答案 0 :(得分:7)

String str = "+Bob foo + bar";
str = str.replace("+Bob", "Bob");
System.out.println(str);
  

Bob foo + bar

要处理+Bob之间的空格,您可以使用正则表达式:

String str = "+Bob foo + bar";
str = str.replaceAll("\\+\\s*Bob", "Bob");

要检查之后的加号,请使用

str = str.replaceAll("Bob\\s*\\+", "Bob");

答案 1 :(得分:0)

public class Test {
  public static void main(String[] args) throws Exception {
    String regexp = "(?)\\+(\\s?)+Bob";
    System.out.println("+Bob foo + bar".replaceAll(regexp, "Bob"));
    System.out.println("+  Bob foo + bar".replaceAll(regexp, "Bob"));
    System.out.println("+  Bob foo + bar  +Bob".replaceAll(regexp, "Bob"));
    System.out.println("+  Bob foo + bar  +    Bob".replaceAll(regexp, "Bob"));
 }
}
/* output :
Bob foo + bar
Bob foo + bar
Bob foo + bar  Bob
Bob foo + bar  Bob
*/

答案 2 :(得分:0)

抱歉,我拒绝了你们,因为答案是:使用StringBuffer.deleteCharAt(int Index)