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

thebig badwolfhadbigea rsand 牙齿

th

计算机科学计划

计算机

伊斯兰教义

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";
  //}
}

您永远不会告诉程序在读取到第一个中断后继续读取该行。

编辑

好的。不要使用scan.useRadix(breaker). 这不适用——useRadix()告诉编译器解析数字的基数。

你在while循环的正确轨道上。但是,如果您取消注释它,它会引发错误。这是扫描仪正在寻找行中的下一个元素但没有的时候。在阅读之前检查是否有剩余元素...

还有一个来自个人经验的提示:当你有问题时与你的教授会面可以让世界变得不同......这一个提问的地方(我不是说你这样做是错误的),但我会说你的教授比我更了解你。

于 2012-12-06T01:33:34.770 回答