如何比较字符串中的数字和字符串?

时间:2014-03-22 06:32:40

标签: java

我的数组是:

String[] array= {azem, 1 , soaib, 3}; // a[0]= azem , a[1]= 1, a[2]=soaib, a[3]= 3

我的代码不打印任何东西。我还看到了ascii表,并获得了字符串中的数字值,从48到57但没有打印。  我的代码:

String input = "1"; // integers as input 
//String takeinput;
// String input = "48" + takeinput;
for(int i=0; i<array.length; i++){
    if(array[i]== input){
       System.out.print(array[i-1]);
       System.out.print(array[i]);
    }

3 个答案:

答案 0 :(得分:1)

在Java中,==比较两个引用是否指向内存中的同一个对象,而不是它们是否实际指向等效的字符串。

改为使用array[i].equals(input)

答案 1 :(得分:1)

此,

String[] array= {"azem", "1" , "soaib", "3"}; // a[0]= azem , a[1]= 1, a[2]=soaib, a[3]= 3


String input = "1"; // integers as input 
//String takeinput;
// String input = "48" + takeinput;
for(int i=0; i < array.length; i++){
    if(array[i].equals(input)) {  // Modified
       System.out.print(array[i-1]);
       System.out.print(array[i]);
    }

或者更好的是,如果您知道每个奇数位置(索引为0)都是数字,则可以将代码重写为,

int input = 1; // Modified : integers as input 
for(int i=1; i < array.length; i += 2){
    if(Integer.valueOf(array[i]) == input) {  // Modified
       System.out.println(array[i-1] + ":" + array[i]);
    }

这将是一个更清洁,更快速的解决方案。

答案 2 :(得分:0)

在将字符串与数值进行比较时,您是否尝试过Integer.parseInt(...)

Integer.parseInt("26") == Integer.parseInt("56")

<强>更新

您还可以尝试使用.equals()方法比较字符串,如下所示。

array[i].equals(input);

另外,使用println()代替print()来确定正在打印的内容。

Shishir