JavacompareTo一步步执行

标签 java string

我对 Java compareTo 方法按字典顺序比较两个字符串有基本的了解。 我在这里阅读了基础知识String Comparison in Java

我有以下示例:

public class CompareTo {
   public static void main(String args[]) {
       String str1 = "String";
       String str2 = "compareTo";
       String str3 = "String";
       int var1 = str1.compareTo( str2 );
       System.out.println("str1 & str2 comparison: "+var1);

       int var2 = str1.compareTo( str3 );
       System.out.println("str1 & str3 comparison: "+var2);
   }
}

我得到var1 = -16var2 = 0

如果有人一步一步向我解释这个词典比较,那将会有很大的帮助。

谢谢。

最佳答案

好吧,如果你打印:

System.out.println ('S'-'c');

你得到-16

StringcompareTo 一次比较两个 String 的一个字符。第一对不相等的字符(在您的情况下为“String”的“S”和“compareTo”的“c”)决定结果。由于按字典顺序“S”位于“c”之前,因此比较返回负值,这意味着“String”应位于“compareTo”之前。

在第二次比较中,所有字符对都相等,因此 compareTo 返回 0。

关于JavacompareTo一步步执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42969114/

相关文章:

java - 如何在 Spring 的秒 0 之前启动 quartz 调度程序?

java - 尝试运行 Tarjan 算法的 java 实现

string - 如何在 Golang 中解决(字符串和字节类型不匹配)

java - 如何从字符串的开头修剪字符。安卓

arrays - 二元运算符 '+' 不能应用于两个 'Set<String>' 操作数错误

java - 为什么我需要 jdbc 和 sqlite java?

java - 如何将日期/时间字符串转换为自 Unix 纪元以来的分钟数?

java - JTable 编辑后更新单元格值

java - 如何在 Swing JLabel 中每隔设定数量的字符添加一个新行

java - 在Java中,对于字符串x,s.length()的运行时成本是多少?是 O(1) 还是 O(n)?