這是一項家庭作業。我必須編寫一個程序,輸出一個正好具有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