0

に変換できないため、配列で文字列トークナイザーを使用できないことがわかりString()ましたString[]。しばらくして、inputFromFile メソッドが行ごとに読み取る場合、行ごとにトークン化できることに気付きました。トークン化されたバージョンを返すようにする方法がわかりません。

line=in.ReadLine();入れるべき行に..と仮定してStringTokenizer token = new StringTokenizer(line,",")いますが、機能していないようです。

何か助けはありますか?(コンマをトークン化する必要があります)。

public class Project1 {

    private static int inputFromFile(String filename, String[] wordArray) {
        TextFileInput in = new TextFileInput(filename);
        int lengthFilled = 0;
        String line = in.readLine();
        while (lengthFilled < wordArray.length && line != null) {
            wordArray[lengthFilled++] = line;
            line = in.readLine();
        }// while
        if (line != null) {
            System.out.println("File contains too many Strings.");
            System.out.println("This program can process only "
                    + wordArray.length + " Strings.");
            System.exit(1);
        } // if
        in.close();
        return lengthFilled;
    } // method inputFromFile

    public static void main(String[] args) {
        String[] numArray = new String[100];
        inputFromFile("input1.txt", numArray);
        for (int i = 0; i < numArray.length; i++) {
            if (numArray[i] == null) {
                break;
            }
            System.out.println(numArray[i]);
        }// for

        for (int i=0;i<numArray.length;i++)
        {
            Integer.parseInt(numArray[i]);
        }

    }// main
}// project1
4

1 に答える 1

0

これは私が意味したものです:

while (lengthFilled < wordArray.length && line != null) {
            String[] tokens = line.split(",");
            if(tokens == null || tokens.length == 0) {
                 //line without required token, add whole line as it is
                 wordArray[lengthFilled++] = line;
            } else {
                 //add each token into wordArray
                 for(int i=0; i<tokens.length;i++) {
                     wordArray[lengthFilled++] = tokens[i];
                 }
            }

            line = in.readLine();
}// while

他のアプローチもあり得ます。たとえば、StringBuilder を使用してすべてを 1 つの大きな文字列として読み取り、必要なトークンなどに分割することができます。上記のロジックは、正しい方向を示すためのものです。

于 2012-12-17T03:46:45.393 に答える