我正在尝试比较两个不同字符串数组中的元素。为什么我不能只使用简单的>
或<
比较?我也试图将字符串a转换为像这样的字符
chara = a.charAt(0);
但是我收到以下错误:
Cannot invoke charAt(int) on the array type String[]
那么charAt
是什么?为什么我不能在字符串数组上使用字符串函数?我不确定这里的区别是什么。如何获取字符串数组的单个元素?由于Java不允许我直接比较它们,我必须转换它们。我理解字符串是可变的,并且尝试直接比较它们会导致错误,因为它查看内存位置而不是像原始数据那样的值。所以我需要使它原始化以进行大于或小于比较,一个简单的解决方案是将类型转换为char。为什么charAt
不起作用?
答案 0 :(得分:0)
您无法在charAt
(String[]
数组)上使用String
;它们不是String
,而是String
。您只能在String
:
chara = a[0].charAt(0); // perhaps this is what you need
// or some other number instead of 0
数组是Java中的对象,因此它们有自己的方法,但没有一个被称为charAt
。
此外,如果您想比较两个String
,请查看String.compareTo
。
答案 1 :(得分:0)
Ziyao指出你需要从字符串数组中获取一个String。
要比较两个String对象,您不需要将它们转换为基本类型,您可以调用String.compareTo(String anotherString)
String oneString = "abcd";
String anotherString = "bbcd";
if (oneString.compareTo(anotherString) > 0) {
//
}
来自http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#compareTo(java.lang.String)
“如果参数字符串等于此字符串,则值为0;如果此字符串按字典顺序小于字符串参数,则值小于0;如果此字符串按字典顺序大于字符串参数,则大于0的值。 “