2012-05-13 4 views
0

я тусклый, чтобы разбить строку, а затем проверить, если каждая часть, что я расщепляется является числом или идентификатором это то, что я сделал до сих пор :)Проверка строки в качестве действительных чисел

public class splitest { 


public void splitfunc() { 


    String str = "A:25"; 
    String[] temp = null; 
    temp = str.split(":"); 

    run(temp); 
} 

public void run(String[] s) { 


    for (int i = 0; i < s.length; i++) { 

     if (s[i].equals(" ")) { // <<< checks if the splitted string is a digit ot not?? 

      System.out.println(s[i]+" is a number"); 

      } else 

       System.out.println(s[i]+" is an Identfier"); 
    } 
} 

public static void main(String args[]) throws Exception { 
    splitest ss = new splitest(); 
    ss.splitfunc(); 
} 
    } 

есть способ преобразовать строку в цифру, затем проверить или что-то еще?

вывод должен быть таким: это идентификатор это число

+2

Вы можете использовать регулярное выражение, или попробовать разборе его, или с помощью valueOf. Вы знаете какой-либо из Java API для строк или чисел или регулярных выражений? Есть много способов обойти это, и это тривиально доступно для поиска. –

+1

Я бы отправил маршрут регулярного выражения, где '^ \ d + $' означает, что строка содержит только одну или несколько цифр. – Marc

ответ

3
public boolean isInteger(String input) 
{ 
    try 
    { 
     Integer.parseInt(input); 
     return true; 
    } 
    catch(Exception e) 
    { 
     return false; 
    } 
} 


String[] tokens = s.split("\s+"); 
for (String token : tokens) { 
    if (isInteger(token)) { 
    System.out.println(token + " is a number"); 
    } else { 
    System.out.println(token + " is an identifier"); 
    } 
} 
+1

Возможно, нам следует научить их ловить рыбу? –

+1

1) Я бы сказал, что регулярное выражение, вероятно, является «лучшим», 2) вероятно, лучше поймать «NumberFormatException» вместо обложки «Исключение» – paulsm4

+0

Странно, что код отформатирован двумя разными способами. –

Смежные вопросы