-1

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

4 回答 4

2

不知道你想做什么,但你可以使用String#replace

String alphabet = "abcdefghjklmnopqrstuvwxyz";
       alphabet = alphabet.replace("klmn","");
于 2013-08-31T01:49:53.213 回答
0

编写一个删除它的方法..这里的逻辑是将要删除的字符替换为下一个字符..并代替第二个字符保留第三个字符,依此类推..

如果你想删除大长度的String..然后使用方法Replace..

于 2013-08-31T01:52:31.097 回答
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);
}
于 2013-08-31T03:57:05.683 回答
0

如果您只是想替换一个字符或简单的子字符串,那么String.replace就是解决方案。

如果您想替换匹配正则表达式,那么String.replaceAll就是解决方案。

您的代码不起作用的原因是其中有几个错误:

  1. 您似乎在String.replace(char, char)替换单个字符实例的印象中。实际上,它替换了字符串中第一个字符的所有实例。

  2. 每次循环迭代都会创建一个新的 String 并将其分配给newALPHABET. 但是,您ALPHABET会在下一次迭代中重新开始。

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

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

...除了您不应该ALPHABET用作变量的名称。应该是alphabet!!!

于 2013-08-31T04:54:19.503 回答