1

名前だけが読み取られるため、区切り文字 (" ") の後にスペースを文字列として取り込むにはどうすればよいですか。

public class readfile {

    public static void main(String[] args) throws IOException {

        String readFile = "";
        int i;

        if (args.length == 1) {
            readFile = args[0];

            BufferedReader reader = new BufferedReader(new FileReader(readFile));
            List<String> read = new ArrayList<String>();
            String rLine;
            while ((rLine = reader.readLine()) != null) {
                String[] items = rLine.split(" ");

                if (items[0].equals("Name")) {
                    for (i = 1; i < items.length; i++) {

                        String name = items[1];

                    }

                    System.out.println("Name is " + items[1]);
                }
            }
        }

    }
}


Classlist.txt

Name Alice Mark
Name Rebecca Appel
Name Jonah BullLock Jacob
Name Daniel Ethan Aron

出力:

名前はアリス 名前はレベッカ 名前はジョナ 名前はダニエル

4

2 に答える 2

0

名前を含むファイルの形式が常に同じである場合、つまり「Name」で始まり、名前の一部の間にスペースが1つしかない場合は、代わりに次のコードを使用できます。

while ((rLine = reader.readLine()) != null) {
    if (rLine.startsWith("Name ")) {
        String name = rLine.substring(5);
        System.out.println("Name is " + name);
    }
}

その場合、出力はたとえば'Name is Jonah BullLock Jacob'3行目です。

于 2013-02-06T12:51:28.820 に答える
0

以下の行を変更します。

                       for (i = 1; i < items.length; i++) {

                            String name = items[1];

                        }

に:

                  String name = "";
                  for (i = 1; i < items.length; i++) {

                        name += items[i];

                    }
于 2013-02-06T11:28:01.983 に答える