从字符串中删除某些字符

时间:2013-12-31 18:51:47

标签: java string replace character replaceall

我想创建一个程序,在用户输入的字符串中给出字符数,单词数等。要获得单词计数,我需要删除所有句点和逗号形成一个字符串。到目前为止,我有这个:

import javax.swing.JOptionPane;
public class WordUtilities
{
   public static void main(String args[])
   {
      {
      String s = JOptionPane.showInputDialog("Enter in any text.");

      int a = s.length();
      String str = s.replaceAll(",", "");
      String str1 = str.replaceAll(".", "");
      System.out.println("Number of characters: " + a);
      System.out.println(str1);
      }
   }
}

但最后我只得到了这个:

Number of characters: (...)

为什么不给我字符串没有逗号和句号?我需要修理什么?

2 个答案:

答案 0 :(得分:11)

您可以使用:

String str1 = str.replaceAll("[.]", "");

而不是:

String str1 = str.replaceAll(".", "");

正如@nachokk所说,你可能想读一些关于正则表达式的东西,因为replaceAll第一个参数需要一个正则表达式。

修改

或者只是这个:

String str1 = s.replaceAll("[,.]", "");

用一句话来表达。

答案 1 :(得分:4)

您可以使用String#replace()代替replaceAll导致String#replaceAll

  

替换此字符串中与给定常规匹配的每个子字符串   表达式与给定的替代。

所以在代码中使用replace是

 str = str.replace(",","");
 str = str.replace(".","");

或者您可以在一个中使用正确的正则表达式:

str = str.replaceAll("[.,]", "");