java应该怎样使用scanner.nextLine()?请看看下面这个异常是怎么回事。 20
代码(标注的部分是我认为有错的地方):importjava.util.Enumeration;importjava.util.Scanner;importjava.uti...
代码(标注的部分是我认为有错的地方):
import java.util.Enumeration;import java.util.Scanner;
import java.util.StringTokenizer;
import java.util.Vector;public class WaterSpray
{
public static void main(String[] args)
{
String string;
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
WaterSpray waterSpray=new WaterSpray();
double count=0;
Vector v=new Vector();
for(int i=0;i<n;i++)
{
int k=scanner.nextInt();
double[] data=new double[k];
string=scanner.nextLine();//此处,我想从控制台收一行数据:2 3 3.5 4 4.5 6
//但是运行的时候出现了上面的错误
StringTokenizer stringTokenizer=new StringTokenizer(string," ");
for(int m=0;m<k-2;m++)
{
data[m]=Double.parseDouble( stringTokenizer.nextToken());
}
data=waterSpray.Order(data);
for(int m=0;m<k;m++)
{
count=count+Math.sqrt(data[m]*data[m]-1)*2;
if(count>=20)
{
v.addElement(m+1);
}
}
}
Enumeration enumeration=v.elements();
while(enumeration.hasMoreElements())
{
System.out.println(enumeration.nextElement());
}
}
double[] Order(double[] data)
{
int n=data.length;
double m;
for(int i=0;i<n;i++)
{
for(int j=i;j<n-1;j++)
{
if(data[j]<data[j+1])
{
m=data[j];
data[j]=data[j+1];
data[j+1]=m;
}
}
}
return data;
}
} 展开
import java.util.Enumeration;import java.util.Scanner;
import java.util.StringTokenizer;
import java.util.Vector;public class WaterSpray
{
public static void main(String[] args)
{
String string;
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
WaterSpray waterSpray=new WaterSpray();
double count=0;
Vector v=new Vector();
for(int i=0;i<n;i++)
{
int k=scanner.nextInt();
double[] data=new double[k];
string=scanner.nextLine();//此处,我想从控制台收一行数据:2 3 3.5 4 4.5 6
//但是运行的时候出现了上面的错误
StringTokenizer stringTokenizer=new StringTokenizer(string," ");
for(int m=0;m<k-2;m++)
{
data[m]=Double.parseDouble( stringTokenizer.nextToken());
}
data=waterSpray.Order(data);
for(int m=0;m<k;m++)
{
count=count+Math.sqrt(data[m]*data[m]-1)*2;
if(count>=20)
{
v.addElement(m+1);
}
}
}
Enumeration enumeration=v.elements();
while(enumeration.hasMoreElements())
{
System.out.println(enumeration.nextElement());
}
}
double[] Order(double[] data)
{
int n=data.length;
double m;
for(int i=0;i<n;i++)
{
for(int j=i;j<n-1;j++)
{
if(data[j]<data[j+1])
{
m=data[j];
data[j]=data[j+1];
data[j+1]=m;
}
}
}
return data;
}
} 展开
2个回答
展开全部
for(int m=0;m<k;m++)
{
count=count+Math.sqrt(data[m]*data[m]-1)*2;
if(count>=20)
{
v.addElement(m+1);
}
}////////此处的}放在下边///////////////////////////////////////////////////////////
Enumeration enumeration=v.elements();
while(enumeration.hasMoreElements())
{
System.out.println(enumeration.nextElement());
}
}
}///////放在这里就可以了///////////////////////////////////////////////////////////
{
count=count+Math.sqrt(data[m]*data[m]-1)*2;
if(count>=20)
{
v.addElement(m+1);
}
}////////此处的}放在下边///////////////////////////////////////////////////////////
Enumeration enumeration=v.elements();
while(enumeration.hasMoreElements())
{
System.out.println(enumeration.nextElement());
}
}
}///////放在这里就可以了///////////////////////////////////////////////////////////
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public String nextToken() {
currentPosition = (newPosition >= 0 && !delimsChanged) ?
newPosition : skipDelimiters(currentPosition);
delimsChanged = false;
newPosition = -1;
if (currentPosition >= maxPosition)
throw new NoSuchElementException();
int start = currentPosition;
currentPosition = scanToken(currentPosition);
return str.substring(start, currentPosition);
}
这个是nextToken的源码,自己看一下
currentPosition = (newPosition >= 0 && !delimsChanged) ?
newPosition : skipDelimiters(currentPosition);
delimsChanged = false;
newPosition = -1;
if (currentPosition >= maxPosition)
throw new NoSuchElementException();
int start = currentPosition;
currentPosition = scanToken(currentPosition);
return str.substring(start, currentPosition);
}
这个是nextToken的源码,自己看一下
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询