Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 排序数组(升序或降序)-true或false_Java_Arrays - Fatal编程技术网

Java 排序数组(升序或降序)-true或false

Java 排序数组(升序或降序)-true或false,java,arrays,Java,Arrays,这篇文章详细介绍了如何确定数组的给定整数(升序或降序)是否已排序,并返回表示数组的整数。当给定的整数相等时(例如1、2、3、4、5),它也可以解释 我一直在试图找出如何在Main中将返回值从整数更改为布尔值,但没有任何效果。也就是说,如果数组按任何方向排序,则返回'true',否则返回'false'。我已经在这个问题上工作了两天了,学到了很多东西,但是我被卡住了。请帮忙 我尝试了System.out.println(isSorted(array.toString(“true”));看看这是否有效

这篇文章详细介绍了如何确定数组的给定整数(升序或降序)是否已排序,并返回表示数组的整数。当给定的整数相等时(例如1、2、3、4、5),它也可以解释

我一直在试图找出如何在Main中将返回值从整数更改为布尔值,但没有任何效果。也就是说,如果数组按任何方向排序,则返回'true',否则返回'false'。我已经在这个问题上工作了两天了,学到了很多东西,但是我被卡住了。请帮忙

我尝试了System.out.println(isSorted(array.toString(“true”));看看这是否有效,但事实并非如此

我尝试过将方法返回值从int转换为boolean,然后将所有受影响的整数更改为true或false

我已尝试将Main方法中的数组引用重新指定为字符串“true”或“false”

import java.util.Scanner;
import java.util.Arrays;

class Sorted {

public static int isSorted(int[] intArray) {

    boolean sortedAsc = true;
    boolean sortedDesc = true;
    boolean equalValues=true;
    int result = 0;

    for (int i = 0; i < intArray.length-1; i++)
   {
       equalValues = equalValues && (intArray[i] == intArray[i+1]);
       sortedAscending = sortedAscending && ((intArray[i] <= intArray[i+1]));
       sortedDescending = sortedDescending && ((intArray[i] >= intArray[i+1]));


    if(sortedAsc) result= 1;
    if(sortedDesc) result =  -1;
    if(equalValues) result = 2;

    return result;
}


    public static void main(String[] args) {
        // TODO code application logic here
        int array[] = new int[4];
        array[0]=1;
        array[1]=2;
        array[2]=3;
        array[3]=4;


        int sortedResult = isSorted(array);
        System.out.println( sortedResult == 1 || sortedResult == -1 || sortedResult == 2 );

    } 
}
import java.util.Scanner;
导入java.util.array;
分类{
公共静态整数已排序(整数[]整数数组){
布尔值=真;
布尔值=真;
布尔等值=真;
int结果=0;
对于(int i=0;i
如果我理解正确,您要做的是查看数组是否按升序或降序排序,或者数组中的所有元素是否相等(也按方式排序)。如果是这种情况,我会将您的
for
循环修改为:

   for (int i = 0; i < intArray.length-1; i++)
   {
       equalValues = equalValues && (intArray[i] == intArray[i+1]);
       sortedAscending = sortedAscending && ((intArray[i] <= intArray[i+1]));
       sortedDescending = sortedDescending && ((intArray[i] >= intArray[i+1]));
   }
根据您对代码的更新,您有一些错误,只需将方法
isSorted
替换为以下方法,然后重试:

public static int isSorted(int[] intArray) {

    boolean sortedAsc = true;
    boolean sortedDesc = true;
    boolean equalValues=true;
    int result = 0;

    for (int i = 0; i < intArray.length-1; i++)
    {
       equalValues = equalValues && (intArray[i] == intArray[i+1]);
       sortedAsc = sortedAsc && ((intArray[i] <= intArray[i+1]));
       sortedDesc = sortedDesc && ((intArray[i] >= intArray[i+1]));
    }

    if(sortedAsc) result= 1;
    if(sortedDesc) result =  -1;
    if(equalValues) result = 2;

    return result;
}
publicstaticint被排序(int[]intArray){
布尔值=真;
布尔值=真;
布尔等值=真;
int结果=0;
对于(int i=0;i
请将您的尝试放在问题中。我或其他人将指出在何处进行所需更改。欢迎使用SO。您引用了一篇文章,但未包含相关代码。如果没有这些详细信息,很难为您提供帮助。我很抱歉。我本以为已包含一个链接,指向出现问题的页面,但我可以看出这没有什么帮助。提前谢谢。@SomeDude感谢您的快速而彻底的反馈。我现在遇到的问题是,我得到了一个引用Main方法的“非法表达式开头”。我尝试在几个不同的地方添加分号。根据上面修订的代码,这是问题还是其他问题?谢谢。下面是我的回答获取,在我看来,当整数的上升或下降反转中间数组时,要捕获的方法可能缺少一个场景:测试输入:1 2 5 5 2 3 0正确输出:false您的代码输出:true
public static int isSorted(int[] intArray) {

    boolean sortedAsc = true;
    boolean sortedDesc = true;
    boolean equalValues=true;
    int result = 0;

    for (int i = 0; i < intArray.length-1; i++)
    {
       equalValues = equalValues && (intArray[i] == intArray[i+1]);
       sortedAsc = sortedAsc && ((intArray[i] <= intArray[i+1]));
       sortedDesc = sortedDesc && ((intArray[i] >= intArray[i+1]));
    }

    if(sortedAsc) result= 1;
    if(sortedDesc) result =  -1;
    if(equalValues) result = 2;

    return result;
}