/**
* Shortens input by only having one letter in the output.
*If user inputs blank answer, default is size Small.
*/
if (!burgerSize.isEmpty()) {
burgerSize = burgerSize.trim().toUpperCase();
burgerSize = burgerSize.substring(0, 1);
}
當我做這在我的項目之前修剪的字符串,在命令行中說:串
異常線程「main」 java.lang.StringIndexOutOfBoundsException ...字符串索引超出範圍: 1
在java.lang.String.substring(String.java:1 ...)
在BurgerOrder.main(BurgerOrder.java:66)」
如果我切換行,它不會這樣做...但我的老師告訴我在子字符串之前修剪字符串。
if (!burgerSize.isEmpty()) {
burgerSize = burgerSize.substring(0, 1);
burgerSize = burgerSize.trim().toUpperCase();
}
這是我原來的,它沒有錯誤。我應該保持它的方式並接受我失去的積分嗎?
更新:讓我澄清。如果用戶輸入像這樣的字母S "ssss"
,它將縮短並大寫爲「S」。對於像"mmmmm"
等M的M也是如此。我知道我在用我的代碼做什麼。我只是想知道我的教授的建議是錯的(他正在閱讀我打印的代碼)。
你明白每個是幹什麼的? –
恩,是的,我在一開始就添加了評論。 – user3315017
他的問題實際上是修辭性的。你得到這個錯誤的原因很充分,修剪後該字符串爲空。如果您閱讀了'substring'的javadoc,它會告訴您:IndexOutOfBoundsException - 如果beginIndex是負數,或endIndex大於此String對象的長度 –