[英]type changing in Java
谁能说出如何解决第10行的问题?
public class TestString {
public static void main(String[] args) {
String[] tahed = new String[10];
String x;
x = tahed[0] = "P";
System.out.println(x);
String nimi = "Paul";
String[] eraldatud = nimi.split(" ");
System.out.println(nimi.charAt(0));
if (x == nimi.charAt(0)) //10
System.out.println("True");
}
}
您必须将charAt返回的char转换为String。 我喜欢通过将它连接成这样的字符串来做到这一点:
if (x.equals(""+nimi.charAt(0)))
public class TestString {
public static void main(String[] args) {
String[] tahed = new String[10];
String x;
x = tahed[0] = "P";
System.out.println(x);
String nimi = "Paul";
String[] eraldatud = nimi.split(" ");
System.out.println(nimi.charAt(0));
if (x.equals(Character.toString(nimi.charAt(0))) //10
System.out.println("True");
}
}
您正在尝试将String( x
)与char( nimi.charAt(0)
)进行比较。
您需要将char
转换为String
(并使用.equals
进行比较:
if (x.equals("" + nimi.charAt(0)))
或者您需要将字符串转换为char:
if (x.charAt(0) == nimi.charAt(0))
(但这可能不是您想要的,因为您基本上检查x
以与nimi
相同的字符开头)
问题是您将x定义为String,但是将其与char值(charAt()返回的类型)进行比较。 根据您的意图,您需要将它们比较为两个字符串或两个字符:
if(x.charAt(0) == nimi.charAt(0)) //do a character comparison
要么
if(x.equals(nimi.substring(0, 1)) //do a string comparison
您正在将字符串与char比较。 它将永远是平等的。 尝试这个:
String[] tahed = new String[10];
String x;
x = tahed[0] = "P";
System.out.println(x);
String nimi = "Paul";
String[] eraldatud = nimi.split(" ");
System.out.println(nimi.charAt(0));
char c = nimi.charAt(0);
if (x.toCharArray()[0]==(c))//10
System.out.println("True");
请根据需要优化代码。 这只是为了阐明要点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.