【问题标题】:Removing char from string?从字符串中删除字符?
【发布时间】:2011-11-22 07:50:21
【问题描述】:

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

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

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

【问题讨论】:

  • 这是否意味着您想在bob 之前的任何时候删除+,例如+bob 之间有10 个空格,或者您只是考虑单空间?
  • 你说的第一件事
  • 你最终想在这里完成什么?随着问题的所有变化,我开始怀疑您是否以正确的方式解决这个问题。

标签: java string replace


【解决方案1】:
String str = "+Bob foo + bar";
str = str.replace("+Bob", "Bob");
System.out.println(str);

鲍勃·富+酒吧

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

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

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

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

【讨论】:

  • LOL 谢谢,我不敢相信我没有想到这一点......我正在寻找索引和 sh*t,LOL
  • 如果 + 在 Bob 的末尾(例如:Bob+),我将如何修改它来替换它?
【解决方案2】:
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
*/

【讨论】:

  • 如何修改您的代码以适用于 ~Bob 和 -Bob 和 *Bob 等?
【解决方案3】:

对不起,我对你们投了反对票,因为答案是:使用 StringBuffer.deleteCharAt(int Index)

【讨论】:

    猜你喜欢
    • 2016-07-26
    • 2013-09-18
    • 1970-01-01
    • 2019-09-08
    相关资源
    最近更新 更多