Я пытаюсь напечатать недопустимый номер, номер которого не имеет тип int
или double
, но не получает желаемого результата, пожалуйста, помогите мне указать мою ошибку, а другое можно сделать узнать неверный номер, используя другой способ?Печать недопустимого ввода из строки в Java
public class Test {
public static void main(String [] args)
{
String [] str ={ "10.20","30450","12.valid","100.200"};
for(int i=0; i<str.length; i++)
{
if(str[i].indexOf(".")>0)
{
try
{
Integer.parseInt(str[i]);
System.out.println("its a valid int nummber : "+str[i]);
}
catch(NumberFormatException e)
{
System.out.println("its invalid number in string: "+str[i]);
}
}
else
{
try
{
Double.parseDouble(str[i]);
System.out.println("its valid double number: "+str[i]);
}
catch(NumberFormatException e)
{
System.out.println("its invalid char in string : "+str[i]);
}
}
}
}
}
выход
его недействительным номер строки: 10,20
его действительный двойной номер: 30450
его недействительным номер строки: 12.valid
его недействительным номер строки: 100.200
Это условие неверно: 'if (str [i] .indexOf (". ")> 0)'. Это должно быть 'if (str [i] .indexOf (". ") == -1)', чтобы вы пытались разобрать его как 'int', если там * не * a' .'. Вы пробовали отлаживать, прежде чем спрашивать? Важно развивать навыки диагностики. –
Спасибо, сэр, это помогло мне, сэр, я пытался выяснить свою ошибку, но я думаю, что я пропустил ее>. < – KindZadZa