首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java中compareTo()方法比较字符串详解

中心:String 是字符串,它的比较用compareTo方法,它从第一位开始比较, 如果遇到不同的字符,则马上返回这两个字符的ascii值差值.返回值是int类型 1.当两个比较的字符串是英文且长度不等时..., 1)长度短的与长度长的字符一样,则返回的结果是两个长度相减的值 a=”hello”; b=”hell”; num=1; 或者 a=”h”; b=”hello”; num=4; 2)长度不一样且前几个字符也不一样...,从第一位开始找,当找到不一样的字符时,则返回的值是这两个字符比较的值 a=”assdf”; b=”bdd”; num=-1; 2.当两个比较的字符串是英文且长度相等时, 1)一个字符 a=...=-4 3)多个字符,第一个字符相同则直接比较第二个字符,以此类推 a=”ae”; //e=101 b=”aa”; //a=97 num=4; 小伙伴们可以关注我的公众号,加我个人微信哦...Java核心基础

89230
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java字符串值比较

    name 是使用字面量直接赋值的 ( private String name ="abc"; ) 这种赋值的执行过程是先看字符串常量池中有没有 value 数组为 ['a', 'b', 'c'] 的 String...对象,如果没有的话就创建一个,有的话就拿到他的一个引用。...2 name 没有被static 修饰,所以每实例化一个对象都会执行 private String name ="abc"; 第一次执行的时候发现字符串常量池没有 value 数组为 ['a', 'b'..., 'c']的String 对象,所以创建一个,拿到他的一个引用,但是第二次的时候发现已经有了这样的对象了, 所以只是拿到这个拿到这个对象的一个引用而已。...3 执行 test.name == testB.name; 的时候比较的是两个name指向的内存是不是同一个(比较引用本身没有意义),所以 test.name == testB.name; 的结果是true

    1.2K40

    shell中字符串比较和模糊比较说明

    shell字符串比较说明 1 完全比较方法(完全匹配) if [ "$soure" == "$dest" ]; then     echo "is ==" else     echo "is !...=" fi if语句中的==判断字符串是否相等:     1、使用完全匹配方式;     2、两边的双引号都是可有可无的,但当字符串为空的时候就会报错,提示unary operator expected...2 模糊比较方法(正则表达式) if [[ "$soure" == dest* ]]; then     echo "is ==" else     echo "is !...=" fi 当if语句中的单中括号[]变成双中括号[[]]时,支持模糊匹配,此时:     1、模糊匹配规则不能添加双引号,否则无效,会被当做普通字符串进行比较。     ...2、被比较的字符串,可以加双引号,也可以不加,当字符串为空也不会报错,但是为了统一规范,防止遗漏,因此,推荐还是加入双引号。

    14K10

    浅谈Java字符串的截取和分割、比较字符串

    这篇文章我们浅谈Java字符串的截取和分割、比较字符串和switch语句支持字符串类型知识。...一、字符串的截取和分割 1.在程序开发中,有些时候我们需要对字符串的截取和分割,String类提供了substring()方法是截取字符串的一部分,split()方法是字符串以给定的字符进行分割成字符串数组...二、比较字符串的”==”和”equal()”区别 1.equal()方法是比较两个字符串中的字符是否相等,==方法是用来比较两个字符串中对象的地址是否一致。...三、switch语句支持字符串类型 1.在程序开发中,对字符串的操作中使用比较多,所以在JDK7新特性出现Java编程的方便。...详细的介绍比较字符串的”==”和”equal()”区别,理解这两个的区别。switch语句支持字符串类型,在程序开发中,对字符串的操作中使用比较多,所以在JDK7新特性出现Java编程的方便。

    2K20

    PHP中字符串与数字的比较

    PHP中字符串与数字的比较 在日常开发过程中,==运算符是我们每天都会接触到的。这个运算符中其实埋了非常多的坑,今天我们就来看下字符串和数字用==比较需要注意的问题。...,也就是说,这些字符串在对比的时候进行了类型转换,都被强转成了int型。...('aa' == "aa\n"), PHP_EOL; 这时候的结果就符合我们的预期了,他们本身就是字符串的比对,不会进行任何类型的转换: 1"aa" == " aa" is 2"aa" == "\naa..." is 3"aa" == "aa" is 1 4"aa" == "aa " is 5"aa" == "aa\n" is 综上实验结果得知,当字符串的内容都是int数据时,字符串的==比较会忽略在字符串前面出现的空格或者制表符号将它们强制转换成...而只要字符串中包含文本或者特殊符号在数字的后面,就会以文本方式进行比较,如纯文本或者混合文本("11aa"、"11\n"、"aa11 ")。

    2.1K30

    【坑】 MySQL中,字符串和数值的比较

    也就是说在比较的时候,String是可能会被转为数字的。 对于数据开头的字符串,转成数字后会自动丢弃后面的字母部分,只留下纯数字进行比较。...对于没有数字的那些字符串,与数值进行比较的时候,就只剩下0去和其他数值进行比较了。 例子: 1、对于没有数字的那些字符串,与数值进行比较的时候,就只剩下0去和其他数值进行比较了。...abc' | +---------+------+-----------------------------------------+ 1 row in set (0.00 sec) 2、对于数据开头的字符串...,转成数字后会自动丢弃后面的字母部分,只留下纯数字进行比较。...其实字符串和数值比较最大的坑在于:它会导致查询不能用到索引,直接就影响了查询的效率。

    2.1K20

    java中String的相等比较

    3.原理 要理解 java中String的运作方式,必须明确一点:String是一个非可变类(immutable)。什么是非可变类呢?...简单说来,非可变类的实例是不能被修改的,每个实例中包含的信息都必须在该实例创建的时候就提供出来,并且在对象的整个生存周期内固定不变。java为什么要把String设计为非可变类呢?...(详见 《Effective java》item 13)。String类在java中被大量运用,甚至在class文件中都有其身影,因此将其设计为简单轻便的非可变类是比较合适的。 (1)创建。     ...pool中找不到值为“abc”的字符串,因此 5 //在堆上创建一个String对象,并将该对象的引用加入至strings pool中 6 //此时堆上有两个String对象 7...因为在class文件的规范中, CONSTANT_Utf8_info表中使用一个16位的无符号整数来记录字符串的长度的,最多能表示 65536个字节,而java class 文件是使用一种变体UTF-8

    1.4K60

    Java 中的比较运算符

    (他脑子里的定势一直以为 List 的类型参数还是 long 呢),Java 就是比 C++ 矫情。想想 IDE 这里只是警告,并不是错误,所以也不加理会继续完成他的代码去了。...小菜鸟惭愧极了,基础不牢靠啊,赶紧翻出自己的 Java 入门书对应的章节看了一下,看完才恍然大悟,原来 Java 里的比较运算符里还有这么多小细节呢……不是把 C++ 里的经验直接照搬过来就行了的。...Java 比较运算符里的一些细节 >、>=、< 和 <= 只支持两边操作数都是数值类型。 == 和 != 两边的操作数可以都是数值类型,也可以都是引用类型,但必须是同一个类的实例。...每种数值类型都有对应的包装类,比如 long 的包装类 Long。包装类的实例可以与数值型的值比较,是直接取出包装类实例所包装的数值来比较的。...最佳实践 引用类型实例之间,除非想要知道是否是引用同一个对象,否则它们之间的比较,总是使用 equals() 方法。 参考 《疯狂 Java 讲义》——李刚著 第 3.7.5 节 比较运算符。

    1.3K20

    Java 中的比较运算符

    (他脑子里的定势一直以为 List 的类型参数还是 long 呢),Java 就是比 C++ 矫情。想想 IDE 这里只是警告,并不是错误,所以也不加理会继续完成他的代码去了。...但是到后来怎么运行结果都不太对,明明给 List 里添加的元素里有相等的,有些情况下应该不进入 if 才对,可是却每次比较完都进了 if。...小菜鸟惭愧极了,基础不牢靠啊,赶紧翻出自己的 Java 入门书对应的章节看了一下,看完才恍然大悟,原来 Java 里的比较运算符里还有这么多小细节呢……不是把 C++ 里的经验直接照搬过来就行了的。...Java 比较运算符里的一些细节 >>=<<= ==!= 当 和 引用同一个对象时,则 ,否则 。 每种数值类型都有对应的包装类,比如 long 的包装类 Long。...包装类的实例可以与数值型的值比较,是直接取出包装类实例所包装的数值来比较的。 涉及自动装箱后情况复杂了一些,比如 这时 ina == inb 成立,而 inc == ind 不成立。

    1.1K30

    Java字符串比较面试题详解

    字符串比较 通过字面量赋值创建字符串(如:String s=”hi”),会先在常量池中查找是否存在相同的字符串,若存在,则直接指向该字符串;若不存在,则在常量池中生成一个字符串,再将引用指向该字符串。...通过new String创建字符串,在堆上创建一个,同时在常量池创建一个值相同的对象,但是这两个对象互不相干,如果常量池里已经有了同样的值的对象,只会在堆里新建对象 常量字符串和变量拼接时或者变量与变量拼接时会调用....append("b"); // toString()只会在堆上创建对象("ab"),new String("ab") 会在堆上和常量池都创建 String s = sb.toString(); 调用字符串对象的...intern() 方法时,intern方法会先去常量池找,如果存在,指向常量池中的,如果不存在,在常量池中生成一个对原字符串的引用 字面量+字面量在编译期间就优化成了常量 String s = new..."abc"; final String s2 = "a"; final String s3 = "bc"; String s4 = s2 + s3; // 因为final变量在编译后会直接替换成对应的值

    11810

    java比较字符串是否相等「建议收藏」

    java用equals方法比较的是字符串的内容是否相同,先判断地址是否相等,相等返回true;比较类型是否一样,不一样,返回false。...大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说java比较字符串是否相等,希望能够帮助大家进步!!!...java中字符串的比较:== 我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题 example1: (推荐学习:java课程) String a="abc"; String...因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象; example2: 此代码由Java架构师必看网-架构君整理 String a=new String...2、用equals方法比较的是字符串的内容是否相同, example: String a=new String("abc"); String b=new String("abc"); a.equals

    1.5K20

    Java中的字符串

    Java语言中,把字符串作为对象来处理,类String就可以用来表示字符串(类名首字母都是大写的)。 1.字符串常量 字符串常量是用双引号括住的一串字符。...字符串 判断相等的方法String.equals() 在Java中判等是有讲究的,往往直接使用==得出的答案可能是正确的也可能是错误的,看这段示例: 1 String s1="a"; 2 String...还有以下几点需要注意的地方: 在Java中,内容相同的字串常量(“a”)只保存一份以节约内存,所以s1,s2实际上引用的是同一个对象。...为要提取的最后一个字符在源串中的位置,字符数组buf[]存放目的字符串,dstbegin 为提取的字符串在目的串中的起始位置。...5、修改字符串 修改字符串的目的是为了得到新的字符串,有关各个方法的使用,参考java API。

    1.5K00

    深入浅出 Java 字符串比较

    你是否曾想过 Java 中的 String 方法、关键字和操作符是如何在字符串池中进行比较操作的?本文就带你了解了解!Java 的 String 类封装了一个字节数组。...String 类当查看 Java中的 String 类时,可以看到字符数组是这样被封装的:public String(char value[]) { this(value, 0, value.length...不过请记住,使用保留关键字 new 总是会在内存中创建一个新对象,即使它们的值相同,这一点对你理解这个问题绘很有帮助。使用 String 方法来比较对象引用也可能很棘手。...关键是,如果该方法改变了字符串中的某些内容,那么对象引用将会不同。...使用==操作符比较的是对象引用,而使用equals()方法比较的是字符串的值。这一规则适用于所有对象。

    13410
    领券