2012-05-13 38 views
0

i湾分割字符串,然后检查如果我分裂每一个部分是一个数字或一个标识,这是我做了什么至今:)检查字符串有效整数

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

奇怪的代码是格式化两种不同的方式。 –