检查数组是否已排序

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)

Pét*_*rök 9

该错误意味着>未为String类型定义运算符,该类型是数组的元素类型.运营商<>只在原始类型,如可用intlong,而不是对象.

在这里你需要使用String.compareTo,如下所示:

    if (arrayS[i].compareTo(arrayS[i+1]) > 0)
Run Code Online (Sandbox Code Playgroud)