我想创建一个程序,在用户输入的字符串中给出字符数,单词数等。要获得单词计数,我需要删除所有句点和逗号形成一个字符串。到目前为止,我有这个:
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: (...)
为什么不给我字符串没有逗号和句号?我需要修理什么?
答案 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("[.,]", "");