首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Unity3D中比较string字符串的常用方法使用

Unity3D中比较string字符串的常用方法使用

作者头像
心疼你的一切
发布2026-01-20 14:10:30
发布2026-01-20 14:10:30
870
举报
文章被收录于专栏:人工智能人工智能

大家好,我是unity3d工程师☆心疼你的一切☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

前言

string的比较有很多方法 Equals . Compare .Contains. Indexof . Startswith

一、Equals

1.1 Equals和运算符==是一样的

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class String_Equals : MonoBehaviour
{
    string str1 = "java";
    string str2 = "c++";
    string str3 = "c++";
    void Start()
    {
        // 两种方法是等价的
        Debug.Log("使用 Equals方法:" + str1.Equals(str2));
        Debug.Log("使用 == 运算符:" + (str1 == str2));
        Debug.Log("使用 == 运算符:" + (str3 == str2));

    }
}

1.2 运行结果

在这里插入图片描述
在这里插入图片描述

二、Compare

2.1 Compare 比较如果不相等返回-1否则0

例子如下:

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class String_Compare : MonoBehaviour
{
    string str1 = "java";
    string str2 = "c++";
    string str3 = "c++";
    void Start()
    {
        Debug.Log("使用 Compare方法,不相等:" + string.Compare(str1, str2));
        Debug.Log("使用 Compare方法,相等:" + string.Compare(str2, str3));
    }

}

2.2 结果如下图

三. Contains

3.1 Contains比较传过来的参数,有没有相等的,有就是true否则就是false

代码如下(示例):

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class String_Contains : MonoBehaviour
{
    string str1 = "java";
    string str2 = "c++";
    string str3 = "c++";
   
    char c3 = 'c';

    void Start()
    {
        Debug.Log("使用 Contains方法,参数char:" + str1.Contains(c3));
        Debug.Log("使用 Contains方法,参数string:" + str2.Contains(c3));
    }

}

3.2 效果图如下

四. Indexof

4.1 Indexof 是从前向后找,也就是按顺序,返回的字符是第一次出现的索引

代码如下:示例

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class String_Indexof : MonoBehaviour
{
    string str1 = "jacvac";
    string str2 = "c++";
    string str3 = "c++";

    char c3 = 'c';
    void Start()
    {
        Debug.Log("使用 Indexof方法,参数char:" + str1.IndexOf(c3));
        //Debug.Log("使用 Contains方法,参数string:" + str2.Contains(c3));
    }

}

4.2 结果图如下

在这里插入图片描述
在这里插入图片描述

五. LastIndexof

5.1 LastIndexof方法也是从前往后找,返回的字符是在字符串中最后一次出现的索引

代码示例如下:

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class String_LastIndexof : MonoBehaviour
{
    string str1 = "jacvac";
    string str2 = "c+c+";
    string str3 = "c++";

    char c3 = 'c';
    void Start()
    {      
        Debug.Log("使用 LastIndexOf方法,参数string:" + str2.LastIndexOf(c3));
    }

}

5.2 结果如下

在这里插入图片描述
在这里插入图片描述

六. StartsWith和EndsWith

StartsWith是检测字符串是否以指定的字符串开头,是就是true,否则反之 EndsWith是检测字符串是否以指定的字符串结尾,是就是true,否则反之

6.1 代码如下

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class String_StartsWith : MonoBehaviour
{
    string str1 = "javac";
    string str2 = "c++";
    string str3 = "c";
    void Start()
    {
        Debug.Log("使用 StartsWith方法:" + str2.StartsWith (str3));
        Debug.Log("使用 EndsWith方法:" + str1.EndsWith(str3));
    }
}

6.2 结果如下图

在这里插入图片描述
在这里插入图片描述

补充:

常用方法及原理

  1. == 运算符 原理: 默认比较字符串的值而非引用(C#重载了==运算符),本质上调用string.Equals方法。

示例:

代码语言:javascript
复制
string a = "Hello";
string b = "hello";
bool isEqual = (a == b); // false(区分大小写)
  1. string.Equals 方法 原理: 直接比较字符串内容,可通过参数指定比较规则(如忽略大小写、文化敏感等)。

示例:

代码语言:javascript
复制
bool isEqual1 = string.Equals(a, b, StringComparison.Ordinal); // 严格比较(区分大小写)
bool isEqual2 = a.Equals(b, StringComparison.OrdinalIgnoreCase); // 不区分大小写
  1. string.Compare 方法 原理: 返回整数值表示字符串顺序(小于0、0、大于0),适用于排序场景。

示例:

代码语言:javascript
复制
int result = string.Compare(a, b, StringComparison.CurrentCulture); // 文化敏感比较
  1. StringComparison 枚举 原理: 明确指定比较规则,避免歧义。常用选项: Ordinal:严格二进制比较(最快,区分大小写)。 OrdinalIgnoreCase:二进制比较但忽略大小写。 CurrentCulture:基于当前文化规则(适用于本地化场景)。

总结

  1. 明确规则:始终使用StringComparison参数避免歧义。
  2. 性能优先:高频比较使用Ordinal或预定义比较器。
  3. 注意文化差异:本地化场景需测试多语言环境。
  4. 利用Unity优化:如CompareTag替代gameObject.tag比较。

总结

本篇文章讲解了几种常用的比较字符串的方法 比较字符串是否完全一样,可以用Equals。 比较两个字符串是否一样,可以用Compare,跟Equals不同的是,Equals是返回bool类型,Compare返回int类型。 比较字符串中是否存在某个字符串可以用Contains。 比较字符串中是否存在某个字符串开头或者结尾可以用StartsWith和EndWith,也就是比Contains增加了一层限制。 比较字符串在某个字符串中出现第一次或者最后一次的下标,可以用IndexOf和LastIndexOf

本次就是这么多了,点关注不迷路哦

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、Equals
    • 1.1 Equals和运算符==是一样的
    • 1.2 运行结果
  • 二、Compare
    • 2.1 Compare 比较如果不相等返回-1否则0
    • 2.2 结果如下图
  • 三. Contains
    • 3.1 Contains比较传过来的参数,有没有相等的,有就是true否则就是false
    • 3.2 效果图如下
  • 四. Indexof
    • 4.1 Indexof 是从前向后找,也就是按顺序,返回的字符是第一次出现的索引
    • 4.2 结果图如下
  • 五. LastIndexof
    • 5.1 LastIndexof方法也是从前往后找,返回的字符是在字符串中最后一次出现的索引
    • 5.2 结果如下
  • 六. StartsWith和EndsWith
    • 6.1 代码如下
    • 6.2 结果如下图
  • 常用方法及原理
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档