我正在读取文件中的文字。我想忽略带有单词的标点符号(例如,如果Nay,那么我只想读Nay)。我现在编写的代码只是忽略了“,”但我的要求是忽略所有的标点符号和数字。我的方法很乏味,也很愚蠢。请建议我如何忽略所有标点符号和数字。
如果您认为这篇文章无关紧要,请不要减少我的代表并阻止我的帐户。让我知道你还想要什么,我将与你分享。
我试图阅读的其中一个文本文件如下: Text File
我已经编写了如下行代码来忽略“,”
if(wordArray[j].charAt(k)!=',')
请在下面找到相关代码
for(int k=0;k<wordArray[j].length();k++)
{
if(wordArray[j].charAt(k)!=',' )
{
arrayFinal.add(wordArray[j].charAt(k));
}
}
更新了帖子
答案 0 :(得分:0)
我不确定你究竟想要什么,但是根据你的意见,我知道你想要这个。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next().replaceAll("[^a-zA-Z]", "");
System.out.println(s);
}
can't --> input
cant --> output
答案 1 :(得分:0)
作为一般编程指南,将大型复杂方法分解为较短的方法。这有许多好处(单元测试,可读性,可扩展性,重用)。
所以你可以这样做:
public static String stripPunctuation(String fullString) {
StringBuilder sb = new StringBuilder();
for (int i=0; i < fullString.length(); i++) {
if (Character.isLetter(fullString.charAt(i))) {
sb.append(fullString.charAt(i));
}
}
return sb.toString();
}
并在需要时调用它。可能还有其他第三方库可以执行此操作,但上述内容不会引入依赖项。
然后您的单元测试方法可能如下所示:
@Test
public void testStripPunctuationFromString() {
assertEquals("test", TheClassName.stripPunctuation(".*te@st45&"));
assertEquals("", TheClassName.stripPunctuation(".#*^"));
}