我的数组是:
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]);
}
答案 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