我试图从字符串列表(数组)中仅取出一个与用户输入(数字)相对应的值。如果用户输入数字 4,结果应该是 60。这是我一直试图完成的代码。错误是 int 和 string 不兼容(当然),但除此之外,我确信我在其他地方也犯了错误。我希望数组尽可能简单,没有对象和类。
import java.util.Scanner;
public class FindStringValue{
public static void main(String[] args){
final int[] VALID_NUMBERS=new int[8];
String[] someArray = {"20", "30", "40", "50", "60", "70", "80", "90"};
int inputNumber;
boolean foundIt=false;
int x=0;
Scanner in = new Scanner(System.in);
System.out.print("Enter a number from 0-7 >> ");
inputNumber = in.nextInt();
for(x=0;x<VALID_NUMBERS.length;++x)
if(x==(someArray[x])){
foundIt=true;
break;}
System.out.println("The Number "+inputNumber+" corresponds to String "+someArray[x]);
}
}
最佳答案
也许我误读了这个问题,但听起来你想要的是:
if(inputNumber >= 0 && inputNumber < someArray.length) {
System.out.printf("The Number %d corresponds to String %s\n", inputNumber, someArray[inputNumber]);
} else {
// you don't really show how you want to handle this case...
}
尚不清楚 VALID_NUMBERS 的用途。
编辑
我的意思是你应该完全替换 for 循环:
import java.util.Scanner;
public class FindStringValue {
final String[] someArray = {"20", "30", "40", "50", "60", "70", "80", "90"};
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter a number from 0-7 >> ");
int inputNumber = in.nextInt();
if(inputNumber >= 0 && inputNumber < someArray.length) {
System.out.printf("The Number %d corresponds to String %s\n", inputNumber, someArray[inputNumber]);
} else {
// you don't really show how you want to handle this case...
}
}
}
关于java - 打印与数组中的数字匹配的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30145837/