0

私の質問はおそらく問題をまったく説明していませんが、私が経験しているのは、ここのサンプルに示されているように、「ボックス」の文字列の最初の行を取得できるということです:https ://docs.google .com / open?id = 0B_ifaCiEZgtcVUx3c2c1VWs2NEE

これが現在の私のメインコードです:

import java.util.Scanner;
import static java.lang.System.*;

public class LineBreaker
{
 private String line;
 private int breaker;

public LineBreaker()
{
this("",0);
}

 public LineBreaker(String s, int b)
  {
   line = s;
   breaker = b;
  }

public void setLineBreaker(String s, int b)
{
    line = s;
    breaker = b;
}

public String getLine()
{
    return line;
}

public String getLineBreaker()
{
    String box ="";
    Scanner scan = new Scanner(line);
    //scan.useRadix(breaker);
    //while (scan.hasNext()){
        for(int i = 0; i < breaker; i++){
        box += scan.next();

    }box += "\n";
    //}

    return box;
}

public String toString()
{
    return line + "\n" + getLineBreaker();
}
}

そして、それは関連するランナークラスです:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
import static java.lang.System.*;

public class Lab12f
 {
  public static void main(String args[]) throws IOException
  {
   LineBreaker test = new LineBreaker("1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9", 4);
    out.println(test);

    test.setLineBreaker("t h e b i g b a d w o l f h a d b i g e a r s a n d t e e t h", 2);
    out.println(test);

    test.setLineBreaker("a c o m p u t e r s c i e n c e p r o g r a m", 7);
    out.println(test  );

    test.setLineBreaker("i a m s a m i a m", 2);
    out.println(test);

}
}

現在、私の出力は次のようになっています。

1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9

1234

thebigbadwolfhadbigea rsandteeth

th

acomputerscienceprogr am

acomput

iamsamiam

ia

4

1 に答える 1

0

あなたの問題はここのコードのこのブロックにあります:

public String getLineBreaker() {
  String box ="";
  Scanner scan = new Scanner(line);
  //scan.useRadix(breaker);
  //while (scan.hasNext()){
      for(int i = 0; i < breaker; i++){
      box += scan.next();
  
  }box += "\n";
  //}
}

最初の休憩まで読んだ後、その行から読み続けるようにプログラムに指示することは決してありません。

編集

Ok。使用しないでくださいscan.useRadix(breaker)。これは当てはまりませんuseRadix()。コンパイラに、数値を解析するベースを指示します。

whileあなたはループで正しい軌道に乗っていました。ただし、コメントを外すとエラーが発生します。これは、スキャナーが行の次の要素を探しているが、1つもない場合です。読み取る前に、要素が残っているかどうかを確認してください...

そして個人的な経験からのヒント:質問があるときに教授と会うことは世界を変えることができます...これ質問をする場所です(私はあなたがそうするのが間違っていると言っているわけではありません)が、私は言いますあなたの教授は私よりもあなたのことをよく知っていると。

于 2012-12-06T01:33:34.770 に答える