精华内容
下载资源
问答
  • MATLAB如何判断字符串相等-strcmp函数

    万次阅读 2019-04-25 20:28:55
    strcmp 比较字符串 语法: tf = strcmp(s1,s2) 说明: tf= strcmp(s1,s2), 比较 s1 和 s2,如果二者相同,...输入参数可以是字符串数组、字符向量和字符向量元胞数组任何组合。 实例1:比较两个字符串是否相等 ...

    strcmp

    比较字符串
    语法:
    tf = strcmp(s1,s2)
    说明:
    tf= strcmp(s1,s2), 比较 s1s2,如果二者相同,则返回 1 (true),否则返回 0 (false)。如果文本的大小和内容相同,则它们将视为相等。返回结果 tf 的数据类型为 logical
    输入参数可以是字符串数组、字符向量和字符向量元胞数组的任何组合。
    实例1:比较两个字符串是否相等

    s1 = 'Yes';
    s2 = 'No';
    s3 = 'No';
    tf = strcmp(s1,s2)
    tf1 = strcmp(s2,s3)
    

    结果如图所示,s1~=s2 (s1不等于s2),返回 0,s2==s3 (s2等于s3),返回1
    比较两个字符串是否相等
    实例2:在元胞数组中查找文本

    s1 = 'upon';
    s2 = {'Once','upon';
          'a','time'};
    tf = strcmp(s1,s2)
    

    结果如图所示,数组中相同文本返回1,不同返回0
    在元胞数组中查找文本

    注意事项:

    • strcmp 函数用于比较文本。如果用于不受支持的数据类型,strcmp 始终返回 0。
    • 对于不区分大小写的文本比较,请使用 strcmpi 而不是 strcmp。
    • 虽然 strcmp 与 C 函数共享名称,但它不遵循在文本输入匹配时返回 0 的 C 语言惯例。
    • 对于字符串数组,可以使用关系运算符(==、~=、<、>、<=、>=)而不是 strcmp。您可以对字符串数组进行比较和排序,就像您对数值数组进行比较和排序一样。
    展开全文
  • 回文字符串判断是面试和笔试中常见面试题之一,同时也是 LeetCode 中一道...(来自百度百科)举个例子,比如以下字符串就为回文字符串:回文字符串判断的3种方法1、使用内置函数反转判断回文字符串最简单实现...

    回文字符串判断是面试和笔试中常见的面试题之一,同时也是 LeetCode 中一道经典的面试题,那么本文我们就来看一下什么是回文字符串?以及如何实现回文字符串的判断。

    回文字符串定义

    回文字符串是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文字符串。(来自百度百科)

    举个例子,比如以下字符串就为回文字符串:

    5f82c5285ea01538f622320da749aab1.png

    15fc1271b6d213fd10abd1250a8fa47d.png

    回文字符串判断的3种方法

    1、使用内置函数反转判断

    回文字符串最简单的实现方式就是将字符串进行反转之后再与原字符串进行判断,假如二者相同的话则证明为回文字符串,我们可以借助 StringBuilder 来实现,实现代码如下:

    public class Plalindrome {
        public static void main(String[] args) {
            System.out.println(isPlalindrome_1("12321"));
            System.out.println(isPlalindrome_1("1231"));
            System.out.println(isPlalindrome_1("123321"));
        }
        
        /**
         * 借助内置函数反转实现回文字符串判断
         * @param str 待判断字符串
         * @return
         */
        private static boolean isPlalindrome_1(String str) {
            StringBuilder sb = new StringBuilder(str);
            sb.reverse();
            return sb.toString().equals(str);
        }
    }

    程序的执行结果为:

    true
    false
    true

    当然,除了可以使用 StringBuilder 之外,我们也可以使用 StringBuffer 来实现,实现代码都是相同的,我们这里就不再赘述。

    2、使用方法循环调用实现

    我们可以初始化两个指针 low 和 high,让它们分别指向字符串的第一个字符和最后一个字符,每次判断两个指针指向的字符是否相同,如果相同,则更新指针,是 low = low+1 和 high = high-1,然后判断再进行判断,当所有循环到最中间时二者还相同,则证明是回文字符串,如下图所示:

    ca0fd8ba91f1bfcfb2a6eac6221ce2bc.png

    实现代码如下:

    public class Plalindrome {
        public static void main(String[] args) {
            String str = "12321";
            String str2 = "1231";
            String str3 = "123321";
            System.out.println(isPlalindrome_2(str, 0, str.length() - 1));
            System.out.println(isPlalindrome_2(str2, 0, str2.length() - 1));
            System.out.println(isPlalindrome_2(str3, 0, str3.length() - 1));
        }
        
        /**
         * 用方法循环调用实现
         * @param str  待对比字符串
         * @param low  前面字符的下标
         * @param high 后面字符的下标
         * @return
         */
        private static boolean isPlalindrome_2(String str, int low, int high) {
            if (high == 0 || high == 1) {
                return true;
            } else {
                char c1 = str.charAt(low), c2 = str.charAt(high);
                if (c1 == c2) { // 字符对比相等
                    return isPlalindrome_2(str, low + 1, high - 1);
                } else { // 字符对比不相等
                    return false;
                }
            }
        }
    }

    程序的执行结果为:

    true
    false
    true

    3、使用 for 循环判断

    使用 for 循环判断的方式和上一种实现思路类似,是将字符串分隔成两半,先对比第一位和最后一位是否相等,如果相等进行下一次循环,每次给首位+1 和末尾-1,然后再进行判断,在整个循环过程中如果有一次不相等就里面返回 false,如果整个循环能顺利执行完则说明是回文字符串,直接返回 true 即可,实现代码如下:

    public class Plalindrome {
        public static void main(String[] args) {
            String str = "12321";
            String str2 = "1231";
            String str3 = "123321";
            System.out.println(isPlalindrome_3(str));
            System.out.println(isPlalindrome_3(str2));
            System.out.println(isPlalindrome_3(str3));
        }
        
        /**
         * 用 for 循环判断
         * @param str 待对比字符串
         * @return
         */
        private static boolean isPlalindrome_3(String str) {
            char[] chars = str.toCharArray();
            int maxSize = chars.length / 2; // 循环比较次数
            for (int i = 0; i < maxSize; i++) {
                if (chars[i] != chars[chars.length - 1 - i]) {
                    // 最前面的和最后的依次对比,如果有一个不相同,则返回 false
                    return false;
                }
            }
            return true;
        }
    }

    程序的执行结果为:

    true
    false
    true

    当然,除了以上 3 种实现方法之外,我们还可以有更多判断的方法,比如将字符串倒序之后组成一个新的字符串,再将新老字符串进行比较,或者直接使用StringBuffer 的 reverse 来实现等。

    回文字符串判断的意义

    回文字符串判断的意义,我能想到的就是“面试”了,因为在实际的生活中真的很难找到它的实际应用,这就好像游戏和玩具对人的“意义”一样,它有什么意义呢?其实“面试”一条也就够了吧。

    总结

    回文字符串可以使用内置反转字符串或者递归的方式进行对比,但如果是实际的面试中,我推荐使用第 3 种方式来实现,因为它更原始、需要的依赖也更少,我们并不需要借助 JDK 自身的 API 就可以实现,并且它的实现代码也很简单易懂。

    你还有更好的解决方案吗?欢迎评论区补充留言~

    展开全文
  • 忽略大小比较字符串是否相等题目要求比较两个字符串,忽略大小写,比如字符串"abc"和字符串"ABC",在忽略大小写的情况下是相等的,实现函数def is_same_ignore_case(str1, str2):"""忽略大小写比较两个字符串是否相等...

    忽略大小比较字符串是否相等

    题目要求

    比较两个字符串,忽略大小写,比如字符串"abc"和字符串"ABC",在忽略大小写的情况下是相等的,实现函数

    def is_same_ignore_case(str1, str2):

    """

    忽略大小写比较两个字符串是否相等

    :param str1:

    :param str2:

    :return:

    """

    pass

    要求,不能使用字符串的lower方法和upper方法

    思路分析

    题目要求不能使用字符串的lower方法和upper方法,之所以这样要求,是希望你能从更基础的编程做起,培养更深入的思考。

    要解这个练习题,你需要对ASCII码表有一定的了解,在ASCII码表中,大小写字母的十进制编码相差32。

    通过for循环,遍历str1,同时获取与之相对应索引上的字母,因为要忽略大小写,因此,将他们都转换成ASCII码表里的十进制数值,并且统一转成小写字母的十进制数值。

    在进行正式比较前,严谨的判断逻辑应该是先判断传入的参数str1和str2是否有效,然后判断这两个字符串的长度是否相等,这些都是从程序的健壮性和效率上考虑的。

    enumerate函数是一个非常方便且有用的函数,在for循环中,既能获得遍历的元素,又能获得该元素的索引。

    示例代码

    def get_ord_value(string):

    value = ord(string)

    if 65 <= value <= 90:

    value += 32

    return value

    def is_same_ignore_case(str1, str2):

    """

    忽略大小写比较两个字符串是否相等

    :param str1:

    :param str2:

    :return:

    """

    if not isinstance(str1, str) or not isinstance(str2, str):

    return False

    if len(str1) != len(str2):

    return False

    # 统一转成小写

    for index, item in enumerate(str1):

    value1 = get_ord_value(item)

    value2 = get_ord_value(str2[index])

    if value1 != value2:

    return False

    return True

    if __name__ == '__main__':

    print(is_same_ignore_case('ABC', 'abc'))

    print(is_same_ignore_case('ABC', 'abd'))

    展开全文
  • Java判断字符串相等

    千次阅读 2010-10-16 18:56:00
    很长时间都没有用过java了, 今天有一个刚学java人,让我不用equal()函数帮他实现判断字符串是否相等, 呵呵,那就在复习一下java吧 package bzu.edu.cn; public class Text { /** * @param args */...

       很长时间都没有用过java了, 今天有一个刚学java的人,让我不用equal()函数帮他实现判断字符串是否相等, 呵呵,那就在复习一下java吧

     

     

     

    展开全文
  • strcmp();是处理字符串的,因此它在头文件string.h中 ...有个小应用判断两个字符串是否相等 if(!strcmp(串1, 串2)); 我们知道 在c语言中,非0就为真,因为-1是非0值,所以为真,所以!(-1)为假,值为0 所以 !strcm...
  • PHP中strncmp()函数用于比较两个字符串(区分大小写),可判断两个字符串前n个字符是否相等。strncmp()函数定义如下:(推荐学习:PHP视频教程)strncmp(string1,string2,length)参数说明:string1 必需。规定要比较...
  • 本文实例讲述了PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法。分享给大家供大家参考,具体如下: ...如果两个字符串相等,则返回值为 0 如果 string1 小于 string2,则返回值小于0 如
  • #include<stdio.h> char *proc(char *s, char *t) ... //i表示是s数组长度 for(j=0;t[j]!='\0';j++); //j表示是t数组长度 if(i>=j) //当i大干j,说明s数组长度大,因此返回s return s; else...
  • 个人比较喜欢一个题目,现将i
  • 这篇文章主要介绍了PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法,实例分析了strncmp()函数的功能,参数用法与使用技巧,需要的朋友可以参考下本文实例讲述了PHP中strncmp()函数比较两个字符串前2个字符...
  • 引言Bash 是 Linux 系统下钦定 shell。...今天我们学习一个知识点:如何在 Bash 中判断某个字符串中,是否包含子字符串?题外话在高级编程语言中,一般都提供了该功能,比如 PHP 使用函数 strpo...
  • 本文实例讲述了PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法。分享给大家供大家参考,具体如下:PHP中的strncmp()函数用于比较两个字符串(区分大小写),可判断两个字符串前n个字符是否相等。strncmp()...
  • php判断两个字符串是否相等的方法发布时间:2020-08-01 14:53:31来源:亿速云阅读:66作者:清晨这...php判断两个字符串是否相等的方法:可以通过strncmp()函数来进行判断,具体用法如:【strncmp("hello", "hello",...
  • 编写一个可以判断回文字符串的函数 要求***利用一个函数来判断一串字符是否回文*** 思想:设置两个工作指针p1,p2分别指向字符串首尾,进行字符逐一比较,若有一个字符不相等,标记置为1,标记若为0,则为回文字符串 ...
  • 函数说明:strcasecmp()用来比较参数s1 和s2 字符串,比较时会自动忽略大小写差异。 返回值:若参数s1 和s2 字符串相同则返回0。s1 长度大于s2 长度则返回大于0 值,s1 长度若小于s2 长度则返回小...
  • 这篇文章主要介绍了PHP中strcmp()和strcasecmp()函数字符串比较用法,结合实例形式较为详细分析了strcmp()和strcasecmp()函数字功能,使用方法与区别,需要朋友可以参考下本文实例讲述了PHP中strcmp()和...
  • 的字符串函数,主要还是要对这些函数有一定熟练度就可以. 如下面例题: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<string.h> #...
  • python 判断字符串是否相等。 1 id() 函数用于获取对象内存地址。 2 (ob1 is ob2) 等价于 (id(ob1) == id(ob2)) id函数可以获得对象内存地址,如果两个对象内存地址是一样,那么这两个对象肯定是一个对象...
  • 本文实例讲述了PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法。分享给大家供大家参考,具体如下:PHP中的strncmp()函数用于比较两个字符串(区分大小写),可判断两个字符串前n个字符是否相等。strncmp()...
  • 本文实例讲述了PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法。分享给大家供大家参考,具体如下:PHP中的strncmp()函数用于比较两个字符串(区分大小写),可判断两个字符串前n个字符是否相等。strncmp()...
  • 本文实例讲述了PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法。分享给大家供大家参考,具体如下:PHP中的strncmp()函数用于比较两个字符串(区分大小写),可判断两个字符串前n个字符是否相等。strncmp()...
  • 回文字符串判断是面试和笔试中常见面试题之一,同时也是 LeetCode 中一道...(来自百度百科)举个例子,比如以下字符串就为回文字符串:回文字符串判断的3种方法1、使用内置函数反转判断回文字符串最简单实现...
  • 给定一个 m x n 二维字符网格 board 和一个字符串单词 ...check(i,j,k) 判断从已给网格board (i,j)位置出发,能否搜索到字符串 word从第 k 个字符开始后缀子串。如果能搜索到,则返回 true,反之返回 false。函数
  • 下面是php如何判断两个字符串是否相等,让我们一起来看看php如何判断两个字符串是否相等的具体内容吧!php如何判断两个字符串是否相等php判断两个字符串是否相等的方法:可以通过strncmp()函数...
  • 判断两个字符串是否相等

    千次阅读 2017-07-19 20:55:37
    包含引用函数strlen(s1)取字符串的长度方案一:使用数组表示,取两个数组长度,k为较长数组长度,两个数组依次比较字符串里面内容,如果相等则j+1,比较完之后,若果j=k则返回0,若j≠k,则返回1#include ...
  • 查阅资料写了个函数比较字符串相等,不考虑字符串出现位置。 CREATE FUNCTION bjstr(str VARCHAR (255),str1 VARCHAR (255)) RETURNS INT DETERMINISTIC BEGIN DECLARE i,n INT DEFAULT 0; DECLARE jsstr VARCHAR ...
  • PHP中strncmp()函数用于比较两个字符串(区分大小写),可判断两个字符串前n个字符是否相等。strncmp()函数定义如下:(推荐学习:PHP视频教程)strncmp(string1,string2,length)参数说明:string1 必需。规定要比较...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 851
精华内容 340
关键字:

判断字符串相等的函数