JAVA字符串的比较

目录

字符串的子串的获取

字符和Unicode 

比较字符串(==和equal()的区别)


方法功能
str1.equals(str2)判断两个字符串是否具有相同的值
str1.equalsIgnoreCase(str2)在忽略字符串中大小写的情况下判断字符串是否有相同的值
str.startsWith(str1)判断字符串的开始是否为str1,返回真假,大小写会影响
str.endsWith(str1)判断字符串的结尾是否为str1,返回真假,大小写会影响
str.contains(str1)判断字符串中是否包含str1,返回真假,大小写有影响

字符串的子串的获取

java中字符类型char用于表示单个字符,用单引号括住,给char类型赋值不能用双引号。如果是双引号则是一个字符串。String类下有个方法叫做substring(begin,end); 可以从原字符串中提取出一个子字符串。

    public static void main(String[] args) {
        //char ch = "C";错误示范
        char ch1 = 'C';
        String str = "string in java";
        String newstr = str.substring(1,5);//返回trin
        System.out.println(newstr);
    }

字符和Unicode 

java的字符类型其实可以说是Unicode字符序列。在使用char类型时,如果在变量上使用自增自减时,会得到前一个或后一个 Unicode字符。如果直接在变量上进行加减操作时,会输出一个十进制的编码值。

字符十进制编码
                   ‘0’  到 ‘9’48-57
                   ‘A’  到 ‘Z’65到90
                   ‘a'  到 ‘z’97到122

    public static void main(String[] args) {
        char ch1 = 'A';//十进制编码值为65
        System.out.println(++ch1);//返回B
        System.out.println(--ch1);//返回A
        //此时ch1 = 'A'
        System.out.println(ch1+0);//65
        System.out.println(ch1+1);//66
        System.out.println(ch1+2);//67

    }

因为这些编码(Unicode)的存在,字符和字符之间可以直接进行比较的,这里‘a'的十进制编码是97,’A'的十进制编码是65,所以‘a’<'A' 返回false

    public static void main(String[] args) {
        System.out.println('a'<'A');//返回false
    }

比较字符串(==和equal()的区别)

在进行字符串的比较时务必使用equal() 而不是 == !!!

==操作符检查两个字符串是否完全相同的对象,并不会得出内容是否相等,所以不能用==来比较两个字符串。

.equl()检查两个字符串是否具有相同的值

.equalsIgnoreCase 会忽略大小写的不同

    public static void main(String[] args) {
        String str1 = "hello world";
        String str2 = "hello world";
        String str_new1 = new String("haha");
        String str_new2 = new String("haha");
        String str_new3 = new String("HAHA");

        //这里str1和str2在字符串池中指向的是同一个对象,所以会返回true
        System.out.println(str1 == str2);//true
        //因为new String会在堆中指向的不是同一个对象,所以返回false
        System.out.println(str_new1 == str_new2);//false
        //字符串比较的正确方式
        //.equal将检查两个字符串是否具有相同的值.所以返回true
        System.out.println(str_new1.equals(str_new2));//true
        //在使用这个方法的时候,可以忽略字符串的大小写
        System.out.println(str_new1.equalsIgnoreCase(str_new3));
    }

还有很多可以用来判断字符串的方法

    public static void main(String[] args) {
        String str= "String in java";
        //判断字符串的开始
        System.out.println(str.startsWith("java"));//false
        System.out.println(str.startsWith("Str"));//true
        //判断字符串的结尾
        System.out.println(str.endsWith("vva"));//false
        System.out.println(str.endsWith("va"));//true
        //判断字符串是否包含
        System.out.println(str.contains("python"));//false
        System.out.println(str.contains("jav"));//true
    }

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值