这是一项家庭作业。我必须编写一个程序,输出一个正好具有8个字符的文本(如果没有足够的空间,请添加空格,如果太多,请删除字符),然后在“|”之间添加30个“#”字符线,取决于给定的值。值可以是int或double,int输入范围从0到30,双倍从0.00到1.00。
30的整数或1.00的两倍等于30个“#”字符。
15或两个0.50的整数等于15个“#”字符。
输入可以在一行或多行。if(scanner.nextInt){}被忽略(java)
例如
输入
WS2009 15
输出
WS2009 2空间 这里 | ############### 15空格这里 |
这是我迄今熟了起来:
不必要println()
和弯路与int1
和double1
是测试的原因。
问题是,if和else if条件永远不会被调用。我知道,因为输出“int”或“dubs”在我尝试时不会出现。我究竟做错了什么?在string1 = scanner1.next();
之后,下一个元素应该是整数或双精度。是因为空间吗?
Scanner scanner1 = new Scanner(System.in);
String string1 = "";
int int1 = 0;
double double1 = 0;
while(scanner1.hasNext())
{
string1 = scanner1.next();
System.out.println(string1);
if(scanner1.hasNextInt())
{
int1 = scanner1.nextInt();
System.out.println(drawBar(string1 , int1));
System.out.println("int");
}
else if(scanner1.hasNextDouble())
{
double1 = scanner1.nextDouble();
System.out.println(drawBar(string1 , double1));
System.out.println("dubs");
}
}
由于我没有得到格式化,我做了一个我想要回答的截图。 http://666kb.com/i/c2lsyi21l0tfp7wuu.png – user1308176 2012-04-02 14:36:29
我刚发现它的工作原理是,如果这个值是一个整数,如果它是一个double,它就不起作用! – user1308176 2012-04-02 14:47:31
问题解决: 小数位的德国分隔符是一个“,”和我的编辑器/ JDK或任何使用这个本地默认值,并期望一个“,”但这个输入数字与一个“。”分隔。现在我得知如何解决这个问题。 我不能回答我自己的问题,因为我是一个新用户。 – user1308176 2012-04-02 14:58:56