-2

非常に簡単な質問があります。

ファイル名は「1234.txt」です

Betty Boop
BABAAAABAAAAAAABAAAABBAAAAAABAAAABABAABAAABABABAABAAAAAABAAAAAABAAAAAA
Snoopy
AABBAABBBBBABABAAAAABABBAABBAAAABBBAAABAABAABABAAAABAABBBBAAABBAABABBB
Bugs Bunny
AABAABBABBBAAAABAAAABAAAAABABBBAABAAAABAABBBBABAAAABAABAAAAAABBAAAAABB
Daffy Duck
BAAAAA-BAAAABABAAAAAABA-AAAABABAAAABAABAA-BAAABAABAAAAAABA-BAAABA-BAAA
The frumious bandersnatch
-BBABAA-BBBBBABBBBA-BABBBBBBBBBABBBBBBABB-BBBABBABBBBBBB-BABBBBBBBBBBB
Minnie Mouse
BABA-AABABBBAABAABA-ABABAAAB-ABAAAAAA-AAAABAAABAAABAAAAAB-ABBAAAAAAAAA
Luke Skywalker
BBBAAABBBBAABA-BAAAABBABBAAABBAABAAB-AAAAABBBABAABABA-ABBBABBABAA-AAAA
Han Solo
BA-ABABBB-BBBAABABAAAABBAAABBAAABBABABBAAABABBAAABABAAAABBABAAABBABAAB
Princess Leia
BABBAAABBBBAAABBA-AAAABABBABBABBAAABAABAAABBBA-AABAABAAAABAAAAABABBBAA

1 行目はその人の名前、2 行目はその人の性格です。

名前とパーソナリティを 2 つの異なる文字列 (name、getPersonal) にキャプチャしたいと考えています。しかし、方法がわかりません。私の書き方では、すべてのテキストが名前になります。それで、それを修正する方法は?

これは私のコードです:

while (input.hasNextLine()) {
            String name = input.nextLine();
            System.out.println("name is here: " + name);

            String getPersonal = input.nextLine();
            System.out.println(" personal is here " + getPersonal);

}

EDIT 1 : system.out.println "name is here" と "personal is here" は、コードが期待どおりに動作したかどうかをテストするためのものです。ここでは、最初の行を名前として保存し、2 行目を次のように保存します。性格など。

この 2 つの文字列に別のことをさせたいのです。

このコードを実行すると、「No Line Found」というエラーが表示されます。すべてのテキストが名前になるため、パーソナリティのテキストはありません。


編集2:出力は次のとおりです:

Enter the name of the file with the personality data: 
1234.txt
name is here: 
 personal is here Betty Boop
name is here: BABAAAABAAAAAAABAAAABBAAAAAABAAAABABAABAAABABABAABAAAAAABAAAAAABAAAAAA
 personal is here Snoopy
name is here: AABBAABBBBBABABAAAAABABBAABBAAAABBBAAABAABAABABAAAABAABBBBAAABBAABABBB
 personal is here Bugs Bunny
name is here: AABAABBABBBAAAABAAAABAAAAABABBBAABAAAABAABBBBABAAAABAABAAAAAABBAAAAABB
 personal is here Daffy Duck
name is here: BAAAAA-BAAAABABAAAAAABA-AAAABABAAAABAABAA-BAAABAABAAAAAABA-BAAABA-BAAA
 personal is here The frumious bandersnatch
name is here: -BBABAA-BBBBBABBBBA-BABBBBBBBBBABBBBBBABB-BBBABBABBBBBBB-BABBBBBBBBBBB
 personal is here Minnie Mouse
name is here: BABA-AABABBBAABAABA-ABABAAAB-ABAAAAAA-AAAABAAABAAABAAAAAB-ABBAAAAAAAAA
 personal is here Luke Skywalker
name is here: BBBAAABBBBAABA-BAAAABBABBAAABBAABAAB-AAAAABBBABAABABA-ABBBABBABAA-AAAA
 personal is here Han Solo
name is here: BA-ABABBB-BBBAABABAAAABBAAABBAAABBABABBAAABABBAAABABAAAABBABAAABBABAAB
 personal is here Princess Leia
name is here: BABBAAABBBBAAABBA-AAAABABBABBABBAAABAABAAABBBA-AABAABAAAABAAAAABABBBAA
 personal is here Captain America
name is here: BBAA-BABAAABAABAABAAABBABABABAAA-ABBAAABAABAAABAABABA-AA-AAAAAABB-ABAA
 personal is here No Answer Dude
name is here: ----------------------------------------------------------------------

エラー:

java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1585)
at Capitalize.getName(Capitalize.java:49)
at Capitalize.main(Capitalize.java:26)

では、これらの行を適切な文字列に変換するにはどうすればよいでしょうか?


EDIT 3: だから私はあなたたちがそれがうまくいくのを見る理由を知っていますが、私のものはそうではありません. 「実際の」最初の行を入れるのを忘れていました。

11
Betty Boop
BABAAAABAAAAAAABAAAABBAAAAAABAAAABABAABAAABABABAABAAAAAABAAAAAABAAAAAA
Snoopy
AABBAABBBBBABABAAAAABABBAABBAAAABBBAAABAABAABABAAAABAABBBBAAABBAABABBB
Bugs Bunny
AABAABBABBBAAAABAAAABAAAAABABBBAABAAAABAABBBBABAAAABAABAAAAAABBAAAAABB
Daffy Duck
BAAAAA-BAAAABABAAAAAABA-AAAABABAAAABAABAA-BAAABAABAAAAAABA-BAAABA-BAAA
The frumious bandersnatch
-BBABAA-BBBBBABBBBA-BABBBBBBBBBABBBBBBABB-BBBABBABBBBBBB-BABBBBBBBBBBB
Minnie Mouse
BABA-AABABBBAABAABA-ABABAAAB-ABAAAAAA-AAAABAAABAAABAAAAAB-ABBAAAAAAAAA
Luke Skywalker
BBBAAABBBBAABA-BAAAABBABBAAABBAABAAB-AAAAABBBABAABABA-ABBBABBABAA-AAAA
Han Solo
BA-ABABBB-BBBAABABAAAABBAAABBAAABBABABBAAABABBAAABABAAAABBABAAABBABAAB
Princess Leia
BABBAAABBBBAAABBA-AAAABABBABBABBAAABAABAAABBBA-AABAABAAAABAAAAABABBBAA

はい、INTです。では、どうすればその int をスキップできますか? 次の行に進みますか?


EDIT 4 : 私はバカですよね?私を笑わないでください。私はまったくの初心者です。ありがとう !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!

4

2 に答える 2

1
while (input.hasNextLine()) {
        String name = input.nextLine();
        System.out.println("name is here: " + name);

        String getPersonal = input.nextLine();
        System.out.println(" personal is here " + getPersonal);

}

ファイルに次の行が1 つあるかどうかをテストしていて、次の行が1 つある場合は、次の2行を読んでいます。

ファイルの行数が奇数のようです (出力が示すように、ファイルはダッシュで構成される行で終了します)。そのため、最後の反復で存在しない行を読み取ろうとします。

編集:

行を読んでスキップするには: read it:

input.nextLine();
// now start looping to read the lines you really want to read
于 2013-10-31T22:02:24.557 に答える
0

あなたがそれを読んだらint(そして、私はあなたがこれを使用していると推測しています)、後でnextInt()電話してください。数字の後ろにある改行文字を読み取らないnextLine()ためです。nextInt()

于 2013-10-31T22:16:56.000 に答える