我想从另一个字符串而不是所有字母中删除一个字符串。
示例:“你好,我叫约翰,世界”
删除:“ 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” ,但这不是我所需要的
答案 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语句。