【菜鸟程序员学习——字符串比较】

字符串比较

通过字符串函数 compareTo (string) ,compareToIgnoreCase(String) 及 compareTo(object string) 来比较两个字符串,并返回字符串中第一个字母ASCII的差值。

public class StringCompare{
    public static void main(String[] args) {
        String str="Hello World!";
        String anotherString="hello world!";
        Object objStr=str;

        System.out.println(str.compareTo(anotherString));   //如果此字符串(str)小于字符串(anotherString)参数,则返回一个小于 0 的值,这个值等于字符串中第一个字母ASCII的差值;
        System.out.println(str.compareToIgnoreCase(anotherString));     //如果参数字符串等于此字符串,则返回值 0;
        System.out.println(str.compareTo(objStr.toString()));
    }
}

compareTo() 方法的实现思路:两个字符数组依次从前开始比较,如果对象位置出现字符不同则返回两个字符的编码之差,后面的字符不再比较;如果两个字符数组的长度不一样,并且较短的数组和较长数组所有对应位置的字符都相同,则返回两个数组的长度之差。

Java compareTo()方法

字符类(Java String compareTo())

compareTo() 方法用于两种方式的比较:

  • 字符串与对象进行比较。
  • 按字典顺序比较两个字符串。
int compare(Object o)//o表示比较的对象
/*********************/
int compareTo(String anotherString)//anotherString表示要比较的字符串

返回值

返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。

  • 如果参数字符串等于此字符串,则返回值 0;
  • 如果此字符串小于字符串参数,则返回一个小于 0 的值;
  • 如果此字符串大于字符串参数,则返回一个大于 0 的值。
public class Test {
 
    public static void main(String args[]) {
        String str1 = "Strings";
        String str2 = "Strings";
        String str3 = "Strings123";
 
        System.out.println(str1.compareTo(str2));
        System.out.println(str2.compareTo(str3));
        System.out.println(str3.compareTo(str1));
    }
}

数字类(Java Numbers compareTo())

Integer 与 int 的区别

int是 java 提供的8种原始数据类型之一。Java 为每个原始类型提供了封装类,Integer是 java为 int 提供的封装类。int 的默认值为0,而 Integer 的默认值为 null,即 Integer 可以区分出未赋值和值为0的区别,int 则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用 Integer。在 JSP 开发中,Integer 的默认为 null,所以用el 表达式在文本框中显示时,值为空白字符串,而 int 默认的默认值为0,所以用 el 表达式。在文本框中显示时,结果为0,所以,int 不适合作为 web 层的表单数据的类型。在 Hibernate 中,如果将 OID 定义为 Integer 类型,那么 Hibernate 就可以根据其值是否为null 而判断一个对象是否是临时的,如果将 OID 定义为了 int 类型,还需要在 hbm 映射文件中设置其 unsaved-value 属性为0。另外,Integer 提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。

compareTo() 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long,Integer等。该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较。

public int compareTo(NumbersSubClass referenceName);	
//referenceName 可以是一个 Byte, Double, Integer, Float, Long 或 Short 类型的参数。

返回值

  • 如果指定的数与参数相等返回0。

  • 如果指定的数小于参数返回 -1。

  • 如果指定的数大于参数返回 1。

public class Test{ 
   public static void main(String args[]){
      Integer x = 5;
      System.out.println(x.compareTo(3));
      System.out.println(x.compareTo(5));
      System.out.println(x.compareTo(8));            
     }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值