cho*_*boy 1 java arrays sorting
我正在尝试构建一个程序,它接受一个整数数组作为参数并返回一个String.如果数组从最小到最大排序,字符串将是"升序",如果数组从最大到最小排序,则"降序","未排序"是数组根本没有排序和"所有相同的"如果数组的所有元素都相等.
到目前为止,我有以下代码.我是在正确的轨道上吗?我一直在下面指出的行上出现错误,说"参数类型的运算符>未定义".知道是什么原因引起的吗?
import java.util.*;
import java.io.*;
import java.util.Scanner;
public class arrayCheck {
public static void main(String[] args) throws IOException {
arrayInput();
isSorted(null);
}
public static String arrayInput() {
int size = 0;
Scanner in = new Scanner(System.in);
System.out.println("Enter the size of the array: ");
size = in.nextInt();
System.out.println("The size you enetered is " + size);
int[] array = new int[size];
System.out.println("Enter the array: ");
int j = 0;
while (j < size) {
System.out.print("Enter int"+ (j + 1) + ": ");
array[j] = in.nextInt();
++j;
}
in.close();
String arrayS = Arrays.toString(array);
return arrayS;
}
public static String isSorted(String[] arrayS) {
int n = arrayS.length;
for (int i = 0; i < n - 1; ++i)
if (arrayS[i] > arrayS[i + 1]) //ERROR ON THIS LINE
return "not ascending";
return "ascending";
}
}
Run Code Online (Sandbox Code Playgroud)
该错误意味着>未为String类型定义运算符,该类型是数组的元素类型.运营商<和>只在原始类型,如可用int或long,而不是对象.
在这里你需要使用String.compareTo,如下所示:
if (arrayS[i].compareTo(arrayS[i+1]) > 0)
Run Code Online (Sandbox Code Playgroud)