compareTo(String str)与compareToIgnoreCase(String str)

一、compareTo(String str)方法

  返回值:如果参数字符串等于此字符串,则返回值 0;如果此字符串按字典顺序小于字符串参数,则返回一个小于 0 的值;如果此字符串按字典顺序大于字符串参数,则返回一个大于 0 的值。

  1、按字典顺序比较两个字符串

    String str0 = "a";

    String str1 = "b";

    int result0 = str0.compareTo(str1);//-1
    System.out.println("result0 = "+result0);

    注:该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只在方法 equals(Object) 返回 true 时才返回 0

  2、在某个索引处的字符不同

    String str0 = "abcd";

    String str1 = "abdc";

    int result0 = str0.compareTo(str1);//-1
    System.out.println("result0 = "+result0);

  3、长度不同

    String str0 = "abc";

    String str1 = "abcd";

    int result0 = str0.compareTo(str1);//-1
    System.out.println("result0 = "+result0);

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

    String str0 = "abd";

    String str1 = "abcd";

    int result0 = str0.compareTo(str1);//1
    System.out.println("result0 = "+result0);

    注:若两个字符串长度不同,如果它们在一个或多个索引位置上的字符不同,假设 k 是这类索引的最小值;则在位置 k 上具有较小值的那个字符串,其字典顺序在其他字符串之前。在这种情况下,compareTo 返回这两个字符串在位置 k 处两个char 值的差。

二、compareToIgnoreCase(String str)方法

  1、按字典顺序比较两个字符串,不考虑大小写

    String str0 = "a";

    String str1 = "A";

    int result0 = str0.compareTo(str1);//0
    System.out.println("result0 = "+result0);

 
时间: 2024-10-11 22:00:14

compareTo(String str)与compareToIgnoreCase(String str)的相关文章

Java String字符串/==和equals区别,str。toCharAt(),getBytes,indexOf过滤存在字符,trim()/String与StringBuffer多线程安全/StringBuilder单线程—— 14.0

课程概要 String 字符串 String字符串常用方法 StringBuffer StringBuilder String字符串: 1.实例化String对象 直接赋值  String str="Hello";  推荐这种 使用关键字new  String str1=new String("Hello"); 在内存中开辟2个空间 如图: 源代码 StringDemo01.java 2.String内容的比较 String str="Hello"

java的String和android的String有什么区别?

这是今天阿里电话面试被问到的,在之前确实没有想过(一直以为是一样的),于是面试完之后,我马上打开了源码,对这两个String类进行了比较,下面是我的发现. 首先我观察了这两个String类所导入的包,发现两者有些差异: 这是android版本: import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.nio.CharBuffe

字符串的查找删除---C++中string.find()函数与string::npos

给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串 输入: 输入只有一组数据 输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止 输出: 删除输入的短字符串(不区分大小写)并去掉空格 #include <stdio.h> #include <string> #include <iostream> #include <ctype.h> using namespace std; int main() { char st

String s;和String s=null;和String s=&quot;a&quot;;有什么区别?

String s;和String s=null;和String s="a";有什么区别?   针对这三种情况,使用out.println(s);的时候,第一个会出现异常,第二个会输出null.第三个则会输出a.   这是为什么呢?这三句声明语句,各自作了什么呢? 答: 第一个只是定义了一个String类型变量s,并没有给它赋初值,在Java中,默认在使用一个变量的时候必须赋予它初值(降低风险). 第二个和第三个都定义了String类型变量s,并赋予它初值,只不过第二个赋予的值为null

java String.getBytes()编码问题——String.getBytes(charset)

String的getBytes()方法是得到一个字串的字节数组,这是众所周知的.但特别要注意的是,本方法将返回该操作系统默认的编码格式的字节数组.如果你在使用这个方法时不考虑到这一点,你会发现在一个平台上运行良好的系统,放到另外一台机器后会产生意想不到的问题.比如下面的程序: class TestCharset {  public static void main(String[] args) {  new TestCharset().execute();  }  private void ex

Format string is not a string literal (potentially insecure)

Warning:  Format string is not a string literal (potentially insecure) [objc] view plaincopy NSString * str = nil; str = [NSString stringWithFormat:@"---%d---", 18] ; NSLog(str); 解决1: [objc] view plaincopy NSLog(str,nil); 解决2: [objc] view plainc

std::string::find() 和 std::string::npos

npos是一个常数,用来表示不存在的位置,string::npos代表字符串到头了结束了. int idx = str.find("abc");if (idx == string::npos)  ... 上述代码中,idx的类型被定义为int,这是错误的,即使定义为 unsigned int 也是错的,它必须定义为 string::size_type. npos 是这样定义的:static const size_type npos = -1; 因为 string::size_type

C++中string.find()函数,string.find_first_of函数与string::npos

查找字符串a是否包含子串b,不是用strA.find(strB) > 0而是strA.find(strB) != string:nposstring::size_type pos = strA.find(strB);if(pos != string::npos){}-------------------------------------------int idx = str.find("abc");if (idx == string::npos)...上述代码中,idx的类型被

[Swift]扩展String类:extension String

请参考本博客另一篇技术博文:<[Swift]字符串(String类.NSString类)常用操作> 1 extension String { 2 3 //获取字符串首字符 4 var first: String 5 { 6 get 7 { 8 return String(self[startIndex]) 9 } 10 } 11 12 // 获取字符串最后一个字符 13 var last: String 14 { 15 get 16 { 17 let index = self.index(be