0

句読点と数字を削除し、入力から文字列の配列を作成するリーダーの助けが必要です。

たとえば、入力には、次のような内容を含む「example.txt」ファイルがあります。

Hello 123 , I'am new example ... text file!"

これを含む配列を作成するには、リーダーが必要です。

String[] example = {"Hello", "I", "am", "new", "example", "text", "file"}

句読点と数字を削除し、バッファリングされたリーダーで文字列の配列を作成する方法はありますか?

前もってありがとう、Fipkus。

4

3 に答える 3

1

もう 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);
}

編集:文字列配列を埋めるように変更しました。空白の問題についてはわかりません。

于 2014-11-20T18:02:32.470 に答える
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);
于 2014-11-21T07:01:49.447 に答える
0

を使用しString.split(regex)ます。ではString regex、 のように削除する必要がある文字を入れますString regex = ",0123456789\\."

于 2014-11-20T17:44:12.053 に答える