Java 使用限制器后继续从字符串读入
我的问题可能根本不能很好地解释这个问题,但我所经历的是,我能够获得“box”的字符串的第一行,如这里的示例所示: 以下是我现在的主要代码:Java 使用限制器后继续从字符串读入,java,java.util.scanner,Java,Java.util.scanner,我的问题可能根本不能很好地解释这个问题,但我所经历的是,我能够获得“box”的字符串的第一行,如这里的示例所示: 以下是我现在的主要代码: import java.util.Scanner; import static java.lang.System.*; public class LineBreaker { private String line; private int breaker; public LineBreaker() { this("",0); } public L
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();
}
}
目前,我的输出如下所示:
123456780901 123456789
1234
b i g b a d w o l h a d b i g a r s a d t h
th
a c o m p u r s c i e c e p r o g r a m
算盘
我是我是我是
ia您的问题在这里的代码块中:
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";
//}
}
公共字符串getLineBreaker(){
字符串框=”;
扫描仪扫描=新扫描仪(行);
//scan.useRadix(断路器);
//while(scan.hasNext()){
对于(int i=0;i
你永远不会告诉程序在阅读后一直阅读到第一次中断
编辑
嗯。不要使用scan.useRadix(断路器)
。这不适用--useRadix()
告诉编译器解析数字的基数
您在while
循环中走在正确的轨道上。但是,如果取消注释,它将抛出一个错误。此时扫描仪正在查找行中的下一个元素,但没有。在读取之前,请检查是否有剩余元素
还有一个来自个人经验的提示:当你有问题的时候,与你的教授见面会带来很大的不同。。。这里是一个提问的地方(我不是说你这样做是错误的),但我要说你的教授比我更了解你。这就是我想的问题所在,但不管我怎么做,它要么会抛出一个错误(不是扫描仪错误),要么只会给出相同的输出mmm。。。嗯,我不是100%熟悉使用扫描器——我通常会在角色级别使用操纵。我会说,
scan.useRadix(r)
只是告诉扫描器解释以r为基数的数字。如果我能找到使用扫描器的方法,我会再次响应…因此如果使用while(scan.hasNext()){…
正在尝试找出字符串中是否还有另一位,但它没有像我预期的那样读取它,因为字符串行
已提前终止,这是如何解决的?假设您有breaker=4
,字符串中剩余的字符是abc
。当您点击while循环时,您有一个下一个字符,所以它继续尝试读取4次。本质上,您只需检查每个破折号字符是否有下一个字符。对,我只是想不出如何告诉程序读取4,新行,读取下一行4,新行,读取下一行4,新行。。。。。
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";
//}
}