Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 为什么我在打印res值时得到-8而不是0,-1,1作为compareTo方法返回这些值?_Java_String - Fatal编程技术网

Java 为什么我在打印res值时得到-8而不是0,-1,1作为compareTo方法返回这些值?

Java 为什么我在打印res值时得到-8而不是0,-1,1作为compareTo方法返回这些值?,java,string,Java,String,为什么我在打印res值时得到-8而不是0,-1,1作为compareTo方法返回这些值 为什么我在打印res值时得到-8,而不是0,-1,1 compareTo方法返回这些值 事实并非如此 返回的字符串#compare是: 如果参数字符串等于此字符串,则值0a值 小于0如果此字符串在字典上小于该字符串 争论和大于0的值(如果此字符串为 按字典顺序大于字符串参数 参见 按字典顺序比较两个字符串。比较是基于 字符串中每个字符的Unicode值。字符序列 由该字符串对象表示的对象按字典顺序与 由参数字

为什么我在打印res值时得到-8而不是0,-1,1作为compareTo方法返回这些值

为什么我在打印res值时得到-8,而不是0,-1,1 compareTo方法返回这些值

事实并非如此

返回的字符串#compare是:

如果参数字符串等于此字符串,则值0a值 小于0如果此字符串在字典上小于该字符串 争论和大于0的值(如果此字符串为 按字典顺序大于字符串参数

参见

按字典顺序比较两个字符串。比较是基于 字符串中每个字符的Unicode值。字符序列 由该字符串对象表示的对象按字典顺序与 由参数字符串表示的字符序列。结果是一场灾难 负整数,如果此字符串对象按字典顺序位于 参数字符串。如果此字符串 对象按字典顺序跟随参数字符串。结果是 如果字符串相等,则为零;compareTo在 equals(Object)方法将返回true

这是词典排序的定义。如果有两个字符串 不同,那么它们在某个索引中有不同的字符 这是两个字符串的有效索引,或者它们的长度为 不同,或者两者都不同。如果它们在一个或多个位置具有不同的字符 指数位置,设k为此类指数的最小值;然后是字符串 其在位置k处的字符具有较小的值,由 使用<运算符,按字典顺序优先于另一个字符串。在里面 在这种情况下,compareTo返回两个字符的差值 两个字符串中位置k处的值--即值:

如果没有不同的索引位置,则较短的 字符串按字典顺序位于较长字符串之前。在这种情况下,, compareTo返回字符串长度之差,即 是,值为:


希望这能有所帮助。

@T.J.Crowder也许这个问题与
扫描仪
没有任何关系,只是对方法
compareTo()有一个基本的误解。
@martinhh:你可能是对的。或者它可能是一个双/和。:-)
    import java.io.*;
    import java.util.*;

public class Solution {

    public static void main(String[] args) {
        int len;
        Scanner sc=new Scanner(System.in);
        String A=sc.next();
        String B=sc.next();
        len=A.length() + B.length();
        System.out.println(len);
        int res=A.compareTo(B);
        System.out.println(res);
        switch(res)
            {
            case 0:System.out.println("Equal");break;
            case -1:System.out.println("No");break;
            case 1:System.out.println("Yes");break;
            }
    }
}
this.charAt(k)-anotherString.charAt(k)
 this.length()-anotherString.length()