如何从另一个字符串中删除字符串?

时间:2018-08-04 11:10:50

标签: java string

我想从另一个字符串而不是所有字母中删除一个字符串。

示例:“你好,我叫约翰,世界”
删除:“ ewo”
结果:“ hllo rld我叫约翰”

我的程序将删除所有要删除的字母

String text = "hello world my name is john";
    int num = 1;

    for (int i = 0; i < num; i++) {
        String del = ewo;

        String[] delArray = del.split("");

        for (int j = 0; j < delArray.length; j++) {

            text = text.replace(delArray[j], "");
        }
        System.out.println(text);
    }

我的程序返回:“我的名字是jhn” ,但这不是我所需要的

6 个答案:

答案 0 :(得分:1)

从您的首选输出中,我认为您只想替换第一个匹配字符。幸运的是,Java为此提供了一种方法。

替换此行:

text = text.replace(delArray[j], "");

有了这个:

text = text.replaceFirst(delArray[j], "");

它现在仅根据需要删除第一个匹配字符。

答案 1 :(得分:1)

您可以使用replaceFirst()代替replace()。它将删除与您的输入匹配的第一个匹配项。

答案 2 :(得分:1)

尝试一下

<b:loop values='data:links' var='link'>                    
  <li>
    <a expr:href='data:link.target'>
      <i expr:class='"fa fa-lg fa-" + data:link.name'/>
    </a>
  </li> 
</b:loop>

答案 3 :(得分:0)

System.out.prinln("hello world my name is john".replace("orld",""));

答案 4 :(得分:0)

这可能就是您想要的

public static void main(String[] args) {
    String str1 = "hello world my name is john";
    String str2 = "ewo";

    int currentCharIndex = 0;
    StringBuilder resultBuilder = new StringBuilder();
    for (char c : str1.toCharArray()) {
        if (currentCharIndex >= str2.length() || c != str2.charAt(currentCharIndex)) {
            resultBuilder.append(c);
        } else {
            currentCharIndex++;
        }
    }
    System.out.println(resultBuilder.toString());
}

答案 5 :(得分:0)

您可以使用replaceFirst()或使用三个循环分别删除e,w和o,然后使用break语句。