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

Java 如何比较字符串和字符串中的数字?,java,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;

我有一个数组,它是:

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]);
    }
String input=“1”//整数作为输入
//字符串输入;
//字符串输入=“48”+takeinput;

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


使用
array[i].equals(input)

在比较字符串和数值时是否尝试了
Integer.parseInt(…)

Integer.parseInt(“26”)==Integer.parseInt(“56”)

更新

您还可以尝试将字符串与
.equals()
方法进行比较,如下所示

数组[i]。等于(输入);

另外,使用
println()
而不是
print()
来确定打印的内容

Shishir

这个

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]);
    }
String[]数组={“azem”,“1”,“soaib”,“3”};//a[0]=azem,a[1]=1,a[2]=soaib,a[3]=3
String input=“1”;//整数作为输入
//字符串输入;
//字符串输入=“48”+takeinput;
for(int i=0;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]);
    }
int input=1;//修改:整数作为输入
对于(int i=1;i

这将是一个更干净、更快的解决方案。

使用数组[i].equals(输入)方法比较两个字符串。不成功。当输入为整数时,它也可以工作,并打印整数和输出的字符串:“azem 1”@user3440716 Use
.equals()
比较两个
字符串,您可能希望将第二个
System.out.print()
替换为
System.out.println()
,以确保显示您正在打印的内容。不打印任何内容。但当我删除for循环和if语句并仅写入System.out.print(0)时;它会打印。数组定义将不会编译。您必须将所有内容都放在引号内:
String[]array={“azem”、“1”、“soaib”、“3”};
对不起,我刚才复制了上面的代码,只关注了(array[I].equals(input)){//Modified line.Edited。谢谢您的输入。实际上我从文件中获取了这个字符串,是的,它是以这种形式存在的。但是我应用了所有技术,但没有printing@user3440716如果它来自一个文件,可能有一些额外的字符(如空格),您是否尝试过
trim()
it?我已经完成了trim。但是我即将通过放置用户输入并显示outputif(Integer.parseInt(stringArr[i])==Integer.parseInt(“input”){System.out.print(array[i-1]);System.out.print(array[i]);来完成代码;给出erro