2013-08-31 231 views
-1

我无法从字符串中删除字母。 String ALPHABET = "abcdefghjklmnopqrstuvwxyz";用户放入一个字符串。 “KLMN”。我将如何从字母表中删除klmn?有没有办法?其他然后把它放入一个数组? 这就是我开始。这只会删除字符串中的最后一个字母。这里有什么我的问题。有没有办法从字符串中删除字符? Java

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

'replace','replaceAll' – nachokk

回答

2

不知道你想做的事,但你可以使用String#replace

String alphabet = "abcdefghjklmnopqrstuvwxyz"; 
     alphabet = alphabet.replace("klmn",""); 
0

写方法来删除它..这里的逻辑是替换要删除的下一个炭炭..并在第二个地方之一保持第三焦炭等..

如果你想删除一个大的长字符串的

.. 然后使用方法更换..

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); 
} 
0

如果你只是想替换字符或简单的字符串,然后String.replace是解决方案。

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

你的代码是不工作的原因是因为有几个臭虫在它:

  1. 你似乎是的印象是String.replace(char, char)代替单个字符实例下。实际上,它取代了所有字符串中第一个字符的实例。

  2. 每个循环迭代都会创建一个新的字符串并将其分配给newALPHABET。但是接下来你会在下一次迭代中重新开始ALPHABET

如果目的是产生排除在message字母的“字母”,那么,正确的解决办法是这样的:

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

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

相关问题