比较两个字符串数组中的元素

时间:2013-05-12 00:39:07

标签: java string types casting char

我正在尝试比较两个不同字符串数组中的元素。为什么我不能只使用简单的><比较?我也试图将字符串a转换为像这样的字符

chara = a.charAt(0);

但是我收到以下错误:

Cannot invoke charAt(int) on the array type String[]

那么charAt是什么?为什么我不能在字符串数组上使用字符串函数?我不确定这里的区别是什么。如何获取字符串数组的单个元素?由于Java不允许我直接比较它们,我必须转换它们。我理解字符串是可变的,并且尝试直接比较它们会导致错误,因为它查看内存位置而不是像原始数据那样的值。所以我需要使它原始化以进行大于或小于比较,一个简单的解决方案是将类型转换为char。为什么charAt不起作用?

2 个答案:

答案 0 :(得分:0)

您无法在charAtString[]数组)上使用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的值。 “