精华内容
下载资源
问答
  • 两个字符串比较

    万次阅读 2018-03-02 14:36:00
    两个字符串比较大小: 一、可以compareTo()方法,另外还有compareToIgnoreCase(String) 忽略大小写及 compareTo(object string)这些 方法返回值是int,以compareTo()方法为例: 1 .如果字符串相等返回值为0...

    两个字符串比较大小:
        一、可以用compareTo()方法,另外还有compareToIgnoreCase(String) 忽略大小写及 compareTo(object string)这些 方法返回值是int, 以compareTo()方法为例:
         1 .如果字符串相等返回值为0,不等返回其他数值。
    比较方法是先比较对应字符的大小(Ascall吗顺序),从第一个字母开始比较。
         2.如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)
                   (负值前字符串的值小于后字符串,正值前字符串大于后字符串)
         3.如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,

    以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度. 

    例如:

                            String s1 = "abc"; 
    			String s2 = "abcd"; 
    			String s3 = "abcdfg"; 
    			String s4 = "1bcdfg"; 
    			String s5 = "cdfg"; 
    			System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1长度小1) 
    			System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1长度小3) 
    			System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48) 
    			System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)

    二、还可以用“==”和.equals()方法判断大小:

    1.“==”是一个判断相等的运算符,如果两边是基本数据类型,它判断的是值;如果两边是复合型数据类型(类类型),它判断的是地址;地址相同,内容一定相同,地址不同,内容不一定相同。

    2..equals() 方法只能判断复合型数据类型,由于继承Object类,默认判断的是两边在内存的地址,判断结果和“==”一样,但在一些其他的类库中equals()被重写,例如String,Integer,Data等类中有其自身的实现,比较内容就不是地址了。

    例如:

    String str1 = new String("hello");
    String str2 = "hello";
     
    System.out.println("str1==str2: " + (str1==str2));  \\false
    System.out.println("str1.equals(str2): " + str1.equals(str2));  \\true

    当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。

    但equals() 在String中被重写过了,判断的是内容,不在是内存中的地址,所以是true。

    但是String比较特殊,因为我们都知道jvm把内存分为3个区,分别是方法区,堆区和栈区。而在方法区中维护者一个String常量池,池中用来存放运行时产生的各种字符串,并且池中的内容不重复。而一般对象不在这个池中,对象放在堆里。这就需要分析String的创建方式:

    1. 当使用任何方式来创建一个字符串对象str=“X”时,Java运行时(运行中JVM)会拿着这个X在String池中找是否存在内容相同的字符串对象,如果不存在,则在池中创建一个字符串str,否则,不在池中添加。

    2.Java中,只要使用new关键字来创建对象,则一定会(在堆区或栈区)创建一个新的对象。

    3 .使用直接指定或者使用纯字符串串联来创建String对象,则仅仅会检查维护String池中的字符串,池中没有就在池中创建一个,有则罢了!但绝不会在堆栈区再去创建该String对象。

    4 使用包含变量的表达式来创建String对象,则不仅会检查维护String池,而且还会在堆栈区创建一个String对象。

    例如:

    String str2 = "hello";
    String str3 = "hello";
    System.out.println("str3==str2: " + (str3==str2));  \\true
    System.out.println("str3.equals(str2): " + str3.equals(str2));  \\true

    true的原因是hello都是从常量池中取出来的,但你new出来的不管常量池中有没有都会新建一个,地址就不一样了。

    展开全文
  • c语言比较两个字符串是否相等strcmp

    万次阅读 多人点赞 2017-03-27 13:38:46
    C语言提供了几个标准库函数,可以比较两个字符串是否相同。以下是strcmp()函数比较字符串的一个例子: #include #include int main(void) { char str_1[] = "abc"; char str_2[] = "abc"; char str_3[] = ...

    c语言提供了几个标准库函数,可以比较两个字符串是否相同。以下是用strcmp()函数比较字符串的一个例子:

     

     

     

     

     

    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
        char str_1[] = "abc"; 
        char str_2[] = "abc";
        char str_3[] = "ABC";
        if (strcmp(str_1, str_2) == 0)
            printf("str_1 is equal to str_2. \n");
        else
            printf("str_1 is not equal to str_2. \n");
        if (strcmp(str_1, str_3) == 0)
            printf("str_1 is equal to str_3.\n");
        else
            printf("str_1 is not equal to str_3.\n");
        return 0;
    }


    上例的打印输出如下所示:   

     

    strcmp()函数有两个参数,即要比较的两个字符串。strcmp()函数对两个字符串进行大小写敏感的(case-sensitiVe)和字典式的(lexicographic)比较,并返回下列值之一:
    ----------------------------------------------------
        返  回  值         意  义
    ----------------------------------------------------
        <0               第一个字符串小于第二个字符串
         0               两个字符串相等    ·
        >0               第一个字符串大于第二个字符串
    ----------------------------------------------------

    在上例中,当比较str_1(即“abc”)和str_2(即“abc”)时,strcmp()函数的返回值为0。然而,当比较str_1(即"abc")和str_3(即"ABC")时,strcmp()函数返回一个大于0的值,因为按ASCII顺序字符串“ABC”小于“abc”。

    strcmp()函数有许多变体,它们的基本功能是相同的,都是比较两个字符串,但其它地方稍有差别。下表列出了C语言提供的与strcmp()函数类似的一些函数:   
    -----------------------------------------------------------------
        函  数  名                   作  用
    -----------------------------------------------------------------
        strcmp()         对两个字符串进行大小写敏感的比较
        strcmpi()        对两个字符串进行大小写不敏感的比较
        stricmp()        同strcmpi()
        strncmp()        对两个字符串的一部分进行大小写敏感的比较
        strnicmp()       对两个字符串的一部分进行大小写不敏感的比较
    -----------------------------------------------------------------
    在前面的例子中,如果用strcmpi()函数代替strcmp()函数,则程序将认为字符串“ABC”等于“abc”。

     

     

     

     

     

     

     

     

     

    展开全文
  • 判断两个字符串内容是否相同,指的是两个字符串中的字符是否完全一样,顺序可以不同(也可以称之为换位字符串)。比如字符串1为”abc”,字符串2为”cba”,则认为这两个字符串内容是一样的,再比如字符串1为”aba...

    详细描述
    判断两个字符串的内容是否相同,指的是两个字符串中的字符是否完全一样,顺序可以不同(也可以称之为换位字符串)。比如字符串1为”abc”,字符串2为”cba”,则认为这两个字符串内容是一样的,再比如字符串1为”aba”,字符串2为”abaa”,则认为两个字符串内容不同。因此,两个字符串内容相同包含的意思就是:两个字符串长度相同,并且字符串的字符完全一样(顺序可以不同)。

    分析
    在算法1中,我们曾经使用了一种定桩的方式来解决找出第一个非重复的字符,有了这个经验之后,这个问题我们首先可以想到用类似的方式来处理,虽然表面上看起来没有直接的关系,算法1是一个字符串,本算法是两个字符串,但是仔细思索之后会发现两者确实是相通的,只要稍微做一些变化,就能解决本问题。
    我们用定桩法来进行简单推导一下,假设有两个字符串,字符串1为”abc”,字符串2为”cba”,我们同时对两个字符串的每个字符进行遍历,如果是字符串1中的字符在桩中找到,我们对桩的值进行加1操作,如果是字符串2中的字符在桩中找到,则对桩的值进行减1操作,如果两个字符串的内容完全相同,最后桩的每一个值都应该为0,如果有任何一个值不为0,则说明两个字符串的内容不一样。
    代码实现

    展开全文
  • Java 比较两个字符串内容是否相等

    千次阅读 2020-04-07 13:30:51
    在Java如果 == 对两个 数组类型变量 的内容 进行比较,则可能得到 “错误的” 结果 因为String 在Java为引用数据类型,而不是基本数据(如int,float,char······) 所以,如果要比较 两个String的内容,...

    在Java如果用 == 对两个 数组类型变量 的内容 进行比较,则可能得到 “错误的” 结果
    因为String 在Java为引用数据类型,而不是基本数据(如int,float,char······)
    所以,如果要比较 两个String的内容,我们需要用到equals方法

    //equals方法的使用,内容相同返回true,反之返回false
    	String str1 = "abc";
    	String str2 = "abc";
    	if(str1.equals(str2) )
    		System.out.println("str1 与 str2 内容相同 ");
    	else 
    		System.out.println("str1 与 str2 内容不相同 ");
    

    关于 引用数据类型 使用 == 所产生的问题的个人理解
    在C语音中,没有引用数据,想要存放一个字符串就需要定义一个字符数组
    (这个数组的空间时连续的)
    而这个字符数组的的“名字”又代表的是这个数组中以一个元素的地址(即首地址)
    所以如果在C语言中写这样的代码
    如下:

    	char str1[3] = {'a', 'b','c'};
    	char str2[3] = {'a', 'b','c'};
    	if(str1 == str2) 
    		printf("str1 == str2\n");
    	else 
    		printf("str1 != str2\n");
    

    打印的结果是str1 != str2
    与java中使用 == 所得到的结果一致,

    所以以我个人之见,引用数据类型可能就是基于指针、枚举等等的一种延伸扩展。
    在判断引用数据类型时,就需要对其里面存放的元素进行相对应的比较
    如以下的C代码

    	int i = 0;
    	char flag = 't'
    	
    	for(i; i<3; i++)
    	{
    		if(str1[i] == str2[i]) flag = 't';
    		else flag = 'f';
    	} 
    	//C语言中没有布尔类型
    	if(flag == 't') 
    		return 1;
    	else
    		return 0;
    

    以上内容仅为个人半年学习时间的粗浅理解,如果有不对的地方还请指正

    展开全文
  • equalsIgnoreCase(str):比较字符串内容是否相等,但是会忽略(不区分大小写)大小写 【示例】 public static void main(String[] args) { String str="TOM"; boolean rs = str.equalsIgnoreCase("tom");...
  • //strcmp (参数1类型为:char *,参数2类型为:char *),用于比较参数1,参数2两个字符串的值大小,返回一个int类型的数。如果第一个参数大于第二个参数返回1,相等返回0,小于返回-1,头文件为#include<string....
  • #include #include //将两个字符串合并为一个字符串并且输出 int main(void) { char str1[20] = {"Hello "}; char str2[20] = {"World "}; char *p1,*p2; p1 = str1; p2 = str2; //指针p1遍历到str
  • C语言:比较两个字符串是否相等

    万次阅读 多人点赞 2018-09-24 13:02:23
    1) 使用strcmp进行比较 下面通过一例子进行演示: #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main(void) { char* str1 = "abc"; char* str2 = "abc"; ...
  • 我想的是比较两个文件种不同的地方,我的办法是把他们以字符串的形式都出来存到变量a和b...现在想请教一下如何比较两个字符串并把他们不同的地方打印出来?求个demo~~~~~应该只有三五行代码吧。。可就是搞不出 - -
  • java中两个字符串比较大小

    万次阅读 2014-03-25 15:50:51
    java编程中经常遇到需要比较两个字符串比较大小的需求, 字符串一般分成两类: 第一类:纯数字的字符串,如日期转换的字符串 第二类:非纯数字的字符串。 直接字符串类的compareTo方法: 如: 两个字符串: ...
  • JS如何截取两个字符串之间及字符串前后内容 - 代码篇 效果截图: 重点 · 代码格式: // js截取两个字符串之间的内容: 结果字符串 = str.match(/前面的字符串(\S*)后面的字符串/)[1] // js截取某个字符串前面...
  • java字典顺序比较两个字符串

    千次阅读 2019-11-01 00:13:05
    java字典顺序比较两个字符串关键词思想源码运行结果 关键词 compare (比较) str.compareTo(str2); 即比较str和str2这两个字符串。 思想 源码 运行结果
  • JSTL比较两个字符串

    千次阅读 2017-09-08 16:51:34
    比较字符串 a 和 b${a eq b}"></c:if>
  • 如何比较两个字符串的大小

    千次阅读 2020-06-11 22:18:45
    在Java中可以使用compareTo()方法来对两个字符串比较大小。 String类关于compareTo()方法的解释如下: If they have different characters at one or more index positions, let k be the smallest such index; then...
  • ![图片说明](https://img-ask.csdn.net/upload/201908/18/1566116743_639476.png) 我想实现value 或 value2 与 list 对比 ,都会出前者的结果,即value或value2
  • 字符串1中出现的字母删掉,splite,【split("指定字符串"),用来切割字符串中指定的字符串的,返回的是字符串的数组】 // 3.把返回的数组变成字符串join【join用来对数组进行拼接】  var a = ...
  • 输入两个字符串,输出两个字符串集合的并集。(10分) 题目内容: 输入两个字符串,输出两个字符串集合的并集。 为保证输出结果一致,请将集合内元素排序之后再输出, 如对于集合aset,可输出sorted(aset)。  ...
  • #include&lt;... //比较两个字符串是否相等,(或者说前字符串比后字符串不同的地方大几) int My_strcmp( const char *str1,const char *str2) { int tmp=0; while((tmp=*str1-*st...
  • Java中比较两个字符串

    千次阅读 2019-05-06 17:04:56
    Java中比较两个字符串 方法:通过字符串函数ocmpareTo(String),compareTolgnoreCase(String)及compareTo(object string)来比较两个字符串,并返回字符串中的第一个字母ASC11的差值 public class StringCompareEmp { ...
  • 使用python语言,比较两个字符串是否相同 #2018/3/1 在编写一些小程序时,我需要比较两个字符串是否相同。一开始的思路是使用ord()函数获取字符的整数表示,但是调试过后发现,ord()函数传入的汉字、英文、或者...
  • 今天在划分数据集的时候,需要判断两个字符串内容是否相同,这个之前查过,不过好像忘记了,所以想着再记录一下~ 2Python中判断两个字符串内容是否相同 使用“==”符号进行判断,这个判断是根据字符串中字符...
  • 汇编比较两个字符串

    千次阅读 2015-12-03 19:00:14
    然后比较两个字符串所包含的字符,如果完全相等,则输出‘Match’,否则,输出‘No match’。 data segment str1 db 512 dup('$') len equ $-str1 ;获取str1的长度 str2 db 512 dup('$') m
  • Java实现两个字符串比较

    千次阅读 2011-01-21 11:37:00
    Java实现两个字符串比较
  • 比较两个字符串大小(C语言)

    千次阅读 多人点赞 2019-07-08 22:52:25
    比较两个字符串的大小,不许使用strcmp函数。 输入格式: 在两行分别输入两个长度小于20的字符串。在字符串中不要出现换行符,空格,制表符。 输出格式: 直接输出“>”或“<”或“=”,分别表示第一个字符...
  • C#:获取两个字符串中间的字符串

    千次阅读 2018-09-07 17:27:17
    /// 获取两个字符串中间的字符串 /// &lt;/summary&gt; /// &lt;param name="str"&gt;要处理的字符串,例ABCD&lt;/param&gt; /// &lt;param name="str1"&gt;第1...
  • 输入两个字符串,从第一个字符串中删除第二个字符串中的所有字符 比如输入“They are students." 删除之后的第一个字符串变成"The r stdnts." 思路是利用每个字符都有其对应的ASCII码值,将需要删除的字符的ascii为...
  • java 正则表达式获取指定两个字符串之间内容

    万次阅读 多人点赞 2017-06-02 16:05:35
    xml解析利用正则表达式获取指定两个字符串之间内容  在遇到解析复杂xml的时候,想到大家所想到的都是利用dom4j作为首发工具,但是当遇到层次很多,较为复杂,我们难道还需要从根节点一层一层的解析下去吗?...
  • 输入两个字符串,输出两个字符串集合的并集。 例如:接受的两个字符串为"abc"和"bcd",返回[‘a’, ’b’, ’c’ , ’d’] 思考: 1.输入两个字符串,.split()以间隔符为界分割字符串。分割‘abc’可用list。 2....
  • /*编程从键盘输入两个字符串比较两者的长度,并输出较长的字符串。要求:不能调用库函数strlen()*/ #include<stdio.h> main() { char a[20],b[20],n1,n2,i; printf("请输入第一个字符串:"); gets(a); ...
  • 比较两个字符串的相似度

    万次阅读 2014-10-16 12:39:24
    最近在算法作业,需要比较两个字符串的相似度,并且返回相同的元素所占的百分比。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,787,209
精华内容 1,114,883
关键字:

做两个字符串内容的比较用