java问题:在运用StringTokenizer()时为什么输入空格时结果正确,如果打入回车程序结束得不到正确结果?
importjava.io.*;importjava.util.*;publicclass阶乘因式分解一{publicstaticvoidmain(String[]arg...
import java.io.*;
import java.util.*;
public class 阶乘因式分解一 {
public static void main(String[] args)throws Exception
{
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String line = stdin.readLine();
StringTokenizer st = new StringTokenizer(line);
int m = Integer.parseInt(st.nextToken());
while(--m >= 0)
{
int num = 0, temp, n1 = 0, n2 = 2;
if(st.hasMoreTokens())
n1 = Integer.parseInt(st.nextToken());
if(st.hasMoreTokens())
n2 = Integer.parseInt(st.nextToken());
for(int i = n2; i <= n1; i =temp + n2)
{
temp = i;
while((i%n2==0) && (i >= n2))
{
i /= n2;
num++;
}
}
System.out.println(num);
}
}
} 展开
import java.util.*;
public class 阶乘因式分解一 {
public static void main(String[] args)throws Exception
{
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String line = stdin.readLine();
StringTokenizer st = new StringTokenizer(line);
int m = Integer.parseInt(st.nextToken());
while(--m >= 0)
{
int num = 0, temp, n1 = 0, n2 = 2;
if(st.hasMoreTokens())
n1 = Integer.parseInt(st.nextToken());
if(st.hasMoreTokens())
n2 = Integer.parseInt(st.nextToken());
for(int i = n2; i <= n1; i =temp + n2)
{
temp = i;
while((i%n2==0) && (i >= n2))
{
i /= n2;
num++;
}
}
System.out.println(num);
}
}
} 展开
展开全部
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String line = stdin.readLine();//这里的问题,实际上,这句话只会从控制台读入一行文字,如果你敲回车了,就代表下一行了,你只读取了一行信息,当然跟你想象的结果不一样
String line = stdin.readLine();//这里的问题,实际上,这句话只会从控制台读入一行文字,如果你敲回车了,就代表下一行了,你只读取了一行信息,当然跟你想象的结果不一样
追问
我要读入多行如:如先打入2代表二组数据,回车,打入第一组100空格5,回车,第二组16空格2,回车。得出结果要怎么改?
追答
不管怎么处理,总是一行一行读的
String line;
while((line = stdin.readLine()) != null){//这样就可以循环读入了,虽然我不建议这样处理
System.out.println(line);//这里你可以添加其他操作
}
//你可以读取一行,然后处理,再读入一行再处理,这样一行一行的处理,也就是下面这样子
String line;
line = stdin.readLine();
//然后处理读入的信息,比如数组赋值之类的
line = stdin.readLine();
//然后再处理第二行的信息
展开全部
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String line = stdin.readLine();
就是这段代码的问题,回车就代表换行了。
我要读入多行如:如先打入2代表二组数据,回车,打入第一组100空格5,回车,第二组16空格2,回车。得出结果要怎么改?
你可以把多次读到的行保存在一个list里,然后做判断啊?
String line = stdin.readLine();
就是这段代码的问题,回车就代表换行了。
我要读入多行如:如先打入2代表二组数据,回车,打入第一组100空格5,回车,第二组16空格2,回车。得出结果要怎么改?
你可以把多次读到的行保存在一个list里,然后做判断啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询