精华内容
下载资源
问答
  • 在Java中,可以使用“==”来进行判断字符串是否相等。 示例: String s1="Hello"; String s2="Hello"; //输出返回值 System.out.println(s1==s2); 这时,我们如果运行一下,会发现会输出...

     

    在Java中,经常需要比较两个字符串,这里总结一下。

     

    1.判断字符串是否相等

    在Java中,可以使用“==”来进行判断字符串是否相等。

    示例:

    String s1="Hello";
    String s2="Hello";
    //输出返回值
    System.out.println(s1==s2);
    
    

    这时,我们如果运行一下,会发现会输出“true”。

    换一种赋值方式再试试。

    String s1="Hello";
    String s2=s1;
    //输出返回值
    System.out.println(s1==s2);

    这是,运行一下程序,输出的值为“true”。

    但是我们知道,字符串的初始化有两种方式:直接等号赋值与用new初始化,直接等号赋值放入内存池,其它变量也可以引用;new初始化分配内存空间,不可引用;

    因此,我们用new初始化的方式试一试。

    String s1=new String("Hello");
    String s2=new String("Hello");
    //输出返回值
    System.out.println(s1==s2);

    这时,输出的结果会变成false。 

    为什么会有这样的结果呢?这和内存中的常量池有关。

    常量池属于方法区的一部分,当运行到s1创建对象时,如果常量池中没有,就在常量池中创建一个对象”Hello”,第二次创建的时候,就直接使用,所以两次创建的对象其实是同一个对象,它们的地址值相等。而对于两个基本数据类型,“==”比较的是两个对象的值是否相等;而对于引用类型,“==”比较的是两个对象的地址是否相等。也就是说,对于引用类型,当两个对象的地址相等,即指向同一个地址时,才会相等。

    因此前两次的结果都是false。

    再回到第三次的比较的赋值语句,

    String s1=new String("Hello");
    String s2=new String("Hello");

    上文中提到,new初始化分配内存空间,不可引用;也就是说,上面的“System s1=new String("Hello")”,相当于创建了两次对象,一次是在常量池中创建了对象”Hello”,一次是在堆内存中创建了对象s1。下一个语句也是同理。因此s1、s2的地址不一样,因此这输出false。所以使用“==”判断的时候需要注意的地方比较多。

     

    那么想要毫无顾虑地判断引用类型是否相等该怎么办呢?这时候equals()方法就派上用场了。

     

    为什么这么说呢?

     

    这和equals()方法的重写有关。在equals()方法存在于Object类中,因为Object类是所有类的直接或间接父类,也就是说所有的类中的equals()方法都继承自Object类,而通过源码我们发现,Object类中equals()方法底层依赖的是==号,那么,在所有没有重写equals()方法的类中,调用equals()方法其实和使用==号的效果一样,也是比较的地址值,然而,Java提供的所有类中,绝大多数类都重写了equals()方法,重写后的equals()方法一般都是比较两个对象的值,即比较两个对象的内容 

     

    因此,想要比较两个对象的值是否相等,可以通过equals()方法来完成。

    示例:

    
    string s1="Hello";
    string s2="Hello";
    //输出返回值
    System.out.println(s1.equals(s2));
    
    string s1="Hello";
    string s2=s1;
    //输出返回值
    System.out.println(s1.equals(s2));
    
    
    
    string s1="Hello";
    string s2="He";
    //输出返回值
    System.out.println(s1.equals(s2));

    这时,因为前两个比较语句,s1和s2相等,因此会输出两个true,最后一个比较语句由于s1和s2不相等,因此会输出一个false。

    2.比较字符串的大小

    在Java中,我们用compareTo()方法来比较字符串的大小。该方法属于java.lang.String包下,是Java提供的一个字符串比较的方法。

    CompareTo()返回值: int

    它是先比较对应字符的大小(ASCII码顺序),返回值类型分别有三种,小于0,等于0,大于0,
    1. 如果字符串相等返回值0;
    2. 如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值前字符串的值小于后字符串,正值前字符串大于后字符串);
    3. 如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度。

    语法示例:

    String s1 = "abc"; 
    String s2 = "abcd"; 
    String s3 = "abcdf"; 
    String s4 = "1bcdf"; 
    String s5 = "c"; 
    System.out.println( s1.compareTo(s2) ); // -1 (前面相等,此时比较字符串的长度,s1长度小1,因此输出-1) 
    System.out.println( s1.compareTo(s3) ); // -2(前面相等,此时比较字符串的长度,s1长度小2,因此输出-2) 
    System.out.println( s1.compareTo(s4) ); // 48 (第一个字符不相等,此时比较第一个字符的ASCII码,"a"的ASCII码是97,"1"的的ASCII码是49,所以返回48) 
    System.out.println( s1.compareTo(s5) ); // -2 (第一个字符不相等,此时比较第一个字符的ASCII码,"a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)

    以上就是Java中如何比较字符大小以及判断字符串是否相等的方法,如果大家发现了文章里的错误或者有更好的方法,欢迎留言评论,大家一起学习呀。

     

    展开全文
  • JS常用来比较的几种情况 <script>... 【3】当两个值都是 数字的字符串,使用两个字符串的ASCII码值比较大小 【4】当纯数字 与 非数字的字符串比较 会把字符串转换成 NaN(不是一个数字),

    JS常用来比较的几种情况

    //字符串可以比较大小
     <script>
    
        // var num1 = 'b';
        // var num2 = 'a';
        /* 
          【1】当纯数字 与 纯数字比较 直接比较数字的大小
          【2】当纯数字 与 数字的字符串比较,先把字符串转成数值 在进行大小的比较
          【3】当两个值都是 数字的字符串,使用两个字符串的ASCII码值比较大小
          【4】当纯数字 与 非数字的字符串比较 会把字符串转换成 NaN(不是一个数字),
              任何数跟 NaN进行关系运算的时候都会返回一个 false
         */
        // 1-2   2-0    0-0  一一对比  查看ASCII码值
        //因为200只有三个字符串,所以只比较前三位
        console.log('1200' < '200') //true
    
        console.log('a' < '200'); //false
    
        console.log('b' > 'a');  //true
    
        console.log('12a' > 13);  //false
    
    
      </script>
      
    
    
     <script>
    
        console.log(!"") //true
        console.log(!{}) //false
        console.log(!undefined) //true
        console.log(!!5) //true
    
        console.log(Number(true))  //1
    
        console.log("1555" + 3)  //15553 字符串
    
        var num = 5;
        function fn() {
          num = 1;
        }
        fn();
        alert(num); //1
    
    
        var num1 = 1;
        function testf1() {
          num1 = 2;
          alert(num1);
        }
        function testf2() {
          alert(num1);
        }
        testf1(); //2
        testf2(); //2
    
    
        // 函数中实参可以是: 常量、变量
    
    
      </script>
      
    
    展开全文
  • c++ 判断字符串大小的函数

    千次阅读 2013-04-20 17:17:21
    判断大小是否一样,如果不一样,返回false。 如果一样,再逐个比较,如果发现有一个不同,返回false。直到检查完最后一个后,返回true; bool compare(const char* p1, const char* p2) { int len = strlen(p1); //...
    先判断大小是否一样,如果不一样,返回false。

    如果一样,再逐个比较,如果发现有一个不同,返回false。直到检查完最后一个后,返回true;

    bool compare(const char* p1, const char* p2)
    {
    	int len = strlen(p1);  //若是英文状态下 一个字符大小为1 比如 song ,则 len 为 4
    	if (len != strlen(p2)) //若是中文状态下 一个汉字大小为3 比如 宋 ,则 len 为 3
    	{
    		return false;
    	}else {
    		for (int i = 0; i < len; i++) {
    			if (*(p1+i) != *(p2+i)) {
    				return false;
    			}
    		}
    		return true;
    	}
    }


    展开全文
  • #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* 第1题 字符串world替换为i bookan wisdom */ // ...

     

    #import <Foundation/Foundation.h>

    int main(int argc, const char * argv[]) {

        @autoreleasepool {

            /*

             第1题 字符串中的world替换为i bookan wisdom

             */

            

    //        NSString *str1=@"hello world and sunshine";

    //        NSString *newstr3=[str1 stringByReplacingOccurrencesOfString:@"world" withString:@"i bookan wisdom" ];

    //        NSLog(@"%@",newstr3);

            /*

             第2题 字符串的相加,以字符串输出,并输出长度

             */

    //        NSString *str2=@"999";

    //        NSString *str3=@"888";

    //        int num2=[str2 intValue];

    //        int num3=[str3 intValue];

    //        int numAdd=num2+num3;

    //        NSString *new=[NSString stringWithFormat:@"%d",numAdd];

    //        NSUInteger *Len=[new length];

    //        NSLog(@"%@ %d",new,Len);

            

            /*

             第3题 比较字符串大小

             */

    //        NSString *str4=@"ABC";

    //        NSString *str5=@"ABc";

    //        NSComparisonResult result=[str4 compare:str5];

    //        if (result==NSOrderedDescending) {

    //            NSLog(@"str5<str4");

    //        }else if(result ==NSOrderedAscending){

    //            NSLog(@"str5>str4");

    //        }else{

    //            NSLog(@"str4=str5");

    //        }

            /*

             第4题 截取Android并输出

             */

    //        NSString *str6=@"iphoneAndroid";

    //        NSRange rangStr6;

    //        rangStr6.length=7;

    //        rangStr6.location=6;

    //        NSString *newStr6=[str6 substringWithRange:rangStr6];

    //        NSLog(@"%@",newStr6);

            /*

             第5题 用c语言创建一个oc字符串,并输出。使用两种方法。

             */

    //        char *s="zhangsanfeng";

    //        printf("%s\n",s);

    //        NSString *str=[NSString stringWithFormat:@"%s",s];

    //        NSLog(@"%@",str);

    //        NSString *str1=[NSString stringWithUTF8String:s];

    //        NSLog(@"%@",str1);

            /*

             第6题 字符串内所有a都替换成A;

             */

    //        NSString *str7=@"whatareyou";

    //        NSString *newStr7=[str7 stringByReplacingOccurrencesOfString:@"a" withString:@"A" ];

    //        NSLog(@"%@",newStr7);

            /*

             第7题 判断字符串是否以http开头

             */

    //        NSString *str8=@"http://www.sina.com.cn";

    //        bool result=[str8 hasPrefix:@"http"];

    //        if (result==1) {

    //            NSLog(@"是以http开头");

    //        }else{

    //             NSLog(@"不是以http开头");

    //        }

            /*

             第8题 将字符串内admin和123截取出来

             */

    //        NSString *str9=@"http://localhost:8099/test/user=admin&pwd=123";

    //        NSRange rang1=[str9 rangeOfString:@"admin"];

    //        NSRange rang2=[str9 rangeOfString:@"123"];

    //        NSString *xianShi=[str9 substringWithRange:rang1];

    //        NSLog(@"%@",xianShi);

    //        NSString *xianShi1=[str9 substringWithRange:rang2];

    //        NSLog(@"%@",xianShi1);

            /*

             第9题 字符添加telephone:iphone iphone5修改为"telephone:iphone iphone4 iphone5 iphone6";

             */

    //        NSString *str10=@"telephone:iphone iphone5";

    //        NSString *add=@" ";

    //        NSRange rang=[str10 rangeOfString:add];

    //        NSString *temp=[str10 stringByReplacingCharactersInRange:rang withString:@" iphone4 "];

    //        //NSString *strAdd=@"iphone6";

    //        NSString *temp1=[temp stringByAppendingFormat:@" iphone6"];

    //        NSLog(@"%@",temp1);

            /*

             第10题 排序

             */

    //        NSArray *arr=@[@"String 11",@"String 21",@"String 1",@"string 2",@"String 02"];

    //        NSLog(@"%@",arr);

    //        

    //        NSComparator com=^(id obj,id obj2){

    //            NSComparisonResult result=[obj compare:obj2];

    //            return result;

    //            

    //        };

    //        NSArray *sortArr=[arr sortedArrayUsingComparator:com];

    //        for(NSArray *arr1 in sortArr){

    //            

    //            NSLog(@"%@",arr1);

    //        }

       }

        return 0;

    }

     

    转载于:https://www.cnblogs.com/LiHai/p/5118206.html

    展开全文
  • 题目来源:大工慕课 链接 作者:Caleb Sung 参考解答 逻辑非常简单,这里不再赘述: #include&lt;stdio.h&...本程序用于判断输入的两个字符串的大小。两字符串用回车隔开。\n"); pri...
  • 判断字符串里每个元素是否为 什么类型,一旦有一个元素不满足,就返回False print('123'.isdigit()) print('123hello'.isdigit()) 打印结果:返回值为布尔值,只有两个结果,True and False True False title:...
  • 判断两个字符串的大小

    千次阅读 2010-11-08 22:44:00
    /**  * 判断两个字符串的大小  *  * @author Administrator  *  */ public class StringCompare {  public static void main(String[] args) {  String s1 ...
  • 前言在大家开发项目时候,遇到需求可能是让我们...下面介绍几种判断字符串是否为纯数字方法第一种方式是使用NSScanner:1. 整形判断- (BOOL)isPureInt:(NSString *)string{NSScanner* scan = [NSScanner scanne...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼今天遇到的字符串处理问题,记录一下方便使用str1 = input('请输入一个字符:')#初始化字符、数字、空格、特殊字符计数lowercase = 0uppercase = 0number = 0space =...
  • python函数——字符串字母大小判断

    千次阅读 2019-01-30 18:17:46
    文章目录1. isupper() 判断是否全是大写2. islower()判断是否全是小写3. istitle()判断首字母是否大写, 其余的是否小写...Python提供了isupper(),islower(),istitle()方法用来判断字符串的大小写, 具体实例如下: ...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼今天遇到的字符串处理问题,记录一下方便使用str1 = input('请输入一个字符:')#初始化字符、数字、空格、特殊字符计数lowercase = 0uppercase = 0number = 0space =...
  • 2 字节与字符串的相互转换2.1 将字节数组转为字符串2.2 将字符串转为字节数组3 字符串比较3.1 不区分大小相等比较3.2 比较两个字符串的大小4 字符串查找4.1 判断字符串在源字符串中是否存在4.2 判断字符串是否以指定...
  • //String类:字符串的比较 //判断两个字符串内容是否相等:是布尔值,显示结果是0或者1 //boolean equals(Object anobject):区分大小写 //boolean equalsIgnoreCase(Object anobject):不区分大小写 //按字典顺序...
  • 字符串比较方法: 相等比较:  $str1 = $str2 //检查str1与str2是否相同  $str1 != $str2 //检查str1与str2是否不同 ...大小比较: ... $str1 > $str2 //检查str1是否大于str2 ...判断字符串是否为空
  • Java字符串比较大小,A字符串比B大比较...使用if语句和comepareTo()方法,判断字符串s1是否大于s2。 程序代码: class StringExample { public static void main(String args[ ]) { String s1=new String("你"),
  • js 实现 判断两个字符串日期的大小! 值得下载看看!资源免费,大家分享!!
  • //判断两个字符串的大小和长度 #include <iostream> #include <string> using namespace std; int main() { string s1,s2,msg; string::size_type len1,len2; cout<<"Input s1 ...
  • 如何比较两个时间字符串的大小 现在有两个字符串, 是从表单读取来的日期性,“2003-10-12”与“2003-10-21”, 现在如何判断他们的大小。如果不想再转为date类型比较有一种简单的方法String a=“2003-10-12”; ...
  • 不能用两个字符串比较方法来做。例如:‘2010-10-20’> ‘2010-12-15’正解:都是, 后面时间- 前面时间mysqlselect count(*) from table where timestampdiff(hour,'2008-08-08 12:00:00','2008-08-08...
  • 数组初始化为false,遍历一遍字符串字符,当bool数组对应位置值为真, 表明该字符在之前已经出现过,即可得出该字符串中有重复字符。否则将该位置bool数组 值置为true。 核心代码: 1 bool ...
  • 判断字符串是否唯一? 判断字符串是否唯一? 实现一个算法,确定一个字符串 s 所有字符是否全都不同。 示例 1: 输入: s = "abcdeff" 输出: false 示例 2: 输入: s = "abc" 输出: true 思路1:根据字符集...
  • 因为最近你在写JS页面,有时候需要写到验证,...问题原因:得到结果是字符串,不能直接对比大小字符串对比话直接比得是第一位数字! 解决办法:把字符串转换成数字类型再对比。 代码如下: 搞定,收工!
  • 判断单个字符串

    2020-02-19 08:50:18
    判断字符串大小的依据是根据它们在字典中顺序决定。 语法:Str1.compareTo(Str2); 其返回是一个int类型值。若Str1等于参数字符串Str2字符串,则返回0;若该Str1按字典顺序小于参数字符串Str2,则返回值小...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,044
精华内容 817
关键字:

判断字符串的大小