我是java编程语言的新手,有人可以告诉我跟踪错误的原因。
错误:
不兼容的类型:java.lang.String []无法转换为java.lang.String
public class StringArray {
String[] name = {"abc", "def", "ghi"};
public void setStringArray() {
for (int i = 0; i < name.length; i++) {
if (name.equals(i)) {
System.out.println("print");
} else {
System.out.println("wrong");
}
}
}
public String getStringArray() {
return name;
}
public static void main(String[] args) {
StringArray sa = new StringArray();
sa.setStringArray();
System.out.println(sa.getStringArray());
}
}
答案 0 :(得分:1)
你需要改变两件事。一,方法
public String getStringArray() {
return name;
}
无效,因为name的类型为String [],而不是String。这是正确的:
public String[] getStringArray() {
return name;
}
其次,你的for循环逻辑是错误的。
for (int i = 0; i < name.length; i++) {
if (name.equals(i)) {
System.out.println("print");
} else {
System.out.println("wrong");
}
}
检查String []是否等于整数。这不是正确的逻辑。您需要通过执行name[i]
来获取索引,然后执行类似try catch语句的操作来解析字符串中的整数。
for (int i = 0; i < name.length; i++) {
try {
var nameInt = Integer.parseInt(name[i]);
if (nameInt.equals(i)) {
System.out.println("print");
} else {
System.out.println("wrong");
}
} catch(Exception e) {
e.printStackTrace();
}
}
您可以参考像this这样的问题,以便更全面地了解从字符串中解析整数。
请注意:当你致电sa.setStringArray();
时,它什么都不做,因为字符串数组是硬编码的。
答案 1 :(得分:-1)
在下面的方法中,您尝试返回一个字符串数组,但您的方法的返回类型是“String”并且它是不兼容的,因为您不能将String数组类型转换为String。
public String getStringArray() {
return name;
}
改为使用此
public String getStringArray(){
return name.toString();
}