Scanner sc = new Scanner(System.in);
System.out.println("Enter whatever you want");
String st = sc.nextLine();
try {
String d = String.valueOf(st);
if (d == (String) d) {
System.out.println((String) d);
} else {
System.out.println(d);
}
} catch(Exception e) {
System.out.println("integer");
}
當我嘗試執行此操作時,即使對於整數和雙精度值,它也會一直打印「if」部分。找出用戶是否輸入了字符串,整數或雙精度值
嘗試將其解析到一個號碼類型和捕獲異常... –
由於'd'已經是'String'了,所以將它轉換爲'String'是多餘的;那麼'd == d'顯然總是如此;但是檢查'd == d'是多餘的,因爲你在true和false分支中都做同樣的事情。而'String.valueOf(st)'也是多餘的,因爲'st'已經是'String',所以'st.toString()== st''。 –
要知道用戶輸入了什麼,你可以使用'instanceof'或顯然使用sc.hasNextDouble()或hasNextInt() – Imran