我需要读者帮助,这将删除标点符号和数字,并将从输入中创建字符串数组。
例如,在输入上,会出现“example.txt”文件,其中包含以下内容:
Hello 123 , I'am new example ... text file!"
我需要我的读者创建包含此内容的数组:
String[] example = {"Hello", "I", "am", "new", "example", "text", "file"}
有没有办法如何删除标点符号和数字,并使用缓冲的阅读器创建字符串数组?
提前谢谢你, Fipkus。
答案 0 :(得分:1)
另一种方法是使用StringTokenizer。它有点限制性,但我更喜欢它,因为你只列出分隔符而不是正则表达式,这更容易阅读。
String test = "Hello 123 , I'am new example ... text file!";
ArrayList<String> exampleTemp = new ArrayList<>();
String[] example = new String[6];
StringTokenizer st = new StringTokenizer(test, " ,.1234567890!");
while(st.hasMoreTokens())
{
exampleTemp.add(st.nextToken());
}
exampleTemp.toArray(example);
for(String word : example)
{
System.out.println(word);
}
编辑:我修改它以填充String数组。不确定空白区域问题。
答案 1 :(得分:0)
使用String.split(regex)
。
在String regex
中,您可以像String regex = ",0123456789\\."
中一样放置必须删除的字符。
答案 2 :(得分:0)
最后,我修好了这个:
char[] alphabet= {'a','á','b','c','č','d','ď','e','é','ě','f','g','h',
'i','í','j','k','l','m','n','ň','o','ó','p','q','r','ř','s','š','t','ť',
'u','ú','ů','v','w','x','y','ý','z','ž','A','Á','B','C','Č','D','Ď','E','É',
'Ě','F','G','H','I','Í','J','K','L','M','N','Ň','O','Ó','P','Q','R','Ř','S','Š','T',
'Ť','U','Ú','Ů','V','W','X','Y','Ý','Z','Ž',' '};
String vlozena = userInputScanner.nextLine();
String fileContentsSingle = "";
Integer lenght = vlozena.length();
int j ;
char cha;
/*
* kontroluje, zda se jedná o mezeru či písmeno české abecedy
* a poté jej přidá, pokud vyhovuje, do věty
*/
for (j = 0; j<lenght;j++) {
cha = vlozena.charAt(j);
for (char z : abeceda) {
if (cha == z) {
fileContentsSingle = fileContentsSingle + cha;
}
}
}
fileContentsSingle = fileContentsSingle.replaceAll("\\s+", " ");
fileContentsSingle = fileContentsSingle.toLowerCase();
String[] vetaNaArraySingle = fileContentsSingle.split("\\s+",-1);