有没有办法从字符串中删除字符? Java的

时间:2013-08-31 01:46:32

标签: java string char

我无法从字符串中删除字母。 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, ' ');

               }               
            }
         }

4 个答案:

答案 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就是解决方案。

您的代码无法正常工作的原因是因为其中存在一些错误:

  1. 您似乎认为String.replace(char, char)替换了单个字符实例。实际上,它取代了String中第一个字符的所有实例。

  2. 每次循环迭代都会创建一个新的String并将其分配给newALPHABET。但是在下一次迭代中你会再次使用ALPHABET

  3. 如果目的是产生一个排除message中字母的“字母”,那么正确的解决方案是这样的:

    for (int i = 0; i < message.length(); i++) {
        ALPHABET = ALPHABET.replace(message.charAt(i), ' ');
    }
    

    ...除了你不应该使用ALPHABET作为变量的名称。它应该是alphabet !!!