我无法从字符串中删除字母。 String ALPHABET = "abcdefghjklmnopqrstuvwxyz";
用户输入一个字符串。 “KLMN”。我如何从字母表中删除klmn?有办法吗?其他然后把它放入一个数组?
这就是我的开始。这只删除字符串中的最后一个字母。这是我的问题。
for(int i = 0; i < message.length(); i++){
for(int j = 0; j < ALPHABET.length(); j++){
letter = message.charAt(i);
if(ALPHABET.charAt(j) == message.charAt(i)){
newALPHABET = ALPHABET.replace(letter, ' ');
}
}
}
答案 0 :(得分:2)
不知道你想做什么,但你可以使用String#replace
String alphabet = "abcdefghjklmnopqrstuvwxyz";
alphabet = alphabet.replace("klmn","");
答案 1 :(得分:0)
编写一个删除它的方法..这里的逻辑是用下一个char替换你要删除的char ..代替第二个char保留第三个char等等。
如果要删除大量的String .. 然后使用方法替换..
答案 2 :(得分:0)
你可以用正则表达式做到这一点。尝试下一个:
static String ALPHABET = "abcdefghjklmnopqrstuvwxyz";
public static void main(String[] args) {
String input = JOptionPane.showInputDialog("Letters: ");
Pattern p = Pattern.compile("[" + Pattern.quote(input) +"]");
Matcher m = p.matcher(ALPHABET);
String result = m.replaceAll("");
System.out.println(result);
}
答案 3 :(得分:0)
如果您只想替换字符或简单子字符串,那么String.replace
就是解决方案。
如果您想要匹配正则表达式,那么String.replaceAll
就是解决方案。
您的代码无法正常工作的原因是因为其中存在一些错误:
您似乎认为String.replace(char, char)
替换了单个字符实例。实际上,它取代了String中第一个字符的所有实例。
每次循环迭代都会创建一个新的String并将其分配给newALPHABET
。但是在下一次迭代中你会再次使用ALPHABET
。
如果目的是产生一个排除message
中字母的“字母”,那么正确的解决方案是这样的:
for (int i = 0; i < message.length(); i++) {
ALPHABET = ALPHABET.replace(message.charAt(i), ' ');
}
...除了你不应该使用ALPHABET
作为变量的名称。它应该是alphabet
!!!