对于参数类型java.lang.String,java.lang.String,未定义运算符>。为什么?以及我该如何解决?
public static void main(String[] args)
{
System.out.println("Welcome! How many strings would you like to sort?");
Scanner input = new Scanner(System.in);
int stringSize = input.nextInt();
String [] array = new String[stringSize]; //creating array of the inputed size
for (int i = 0; i < stringSize; i++) //loop for iterating array
{
System.out.print("Please enter string " + (i+1) + ": ");
String stringInput = input.next(); //entering strings
array[i] = stringInput; //assigning to corresponding locations
}
int arrayLength = array.length;
sortLength(array, arrayLength);
System.out.print("Your sorted array is: ");
for (int i = 0; i < arrayLength; i++)
System.out.println(array[i] + ", ");
input.close();
System.out.print("Goodbye!");
}
public static void sortLength(String [] stringArray, int length) //sorting from shortest to longest using bubblesort method
{
length = stringArray.length;
for(int i = 0; i < length - 1; i++) //i represents # of items sorted
{
for(int j = 0; j < i; j++)
{
String temp = stringArray[i];
if(stringArray[j] > stringArray[j+1]) //comparing and swapping the array elements
{
temp = stringArray[j];
stringArray[j] = stringArray[j+1];
stringArray[j+1] = temp;
}
}
}
}
}
答案 0 :(得分:0)
您不需要将数组的length
作为参数传递,您实际上应该调用String.length()
来获取(并比较){{ 1}}。另外,不要仅将相邻元素与String
和j
(使用j+1
)进行比较。喜欢,
i
答案 1 :(得分:0)
对于参数类型java.lang.String,java.lang.String,未定义运算符>。
正确
为什么?
因为关系运算符>
,>=
,<
和<=
仅为基本类型定义。 String
不是原始类型。这是引用类型。
(除了:==
和!=
运算符是为引用类型定义的,但您不应将它们用于比较String
的值。为此,请使用String::equals
。请参见How do I compare strings in Java?)
该如何解决?
这取决于您要执行的操作: