【Unity3D日常开发】Unity3D中比较string字符串的常用方法

推荐阅读

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

字符串string的比较有很多方法,比如:

EqualsCompareContainsIndexOfStartsWith

那么这些方法都有哪些不同,以及如何使用呢,这篇文章就来分享一下字符串对比的经验。

二、常用字符串对比方法使用

2-1、Equals

Equals方法与"=="是等价的,举个例子:

csharp 复制代码
using UnityEngine;

public class TestString : MonoBehaviour
{
    string str1 = "hello";
    string str2 = "world";

    void Start()
    {
        // 两种方法是等价的
        Debug.Log("使用 Equals方法:" + str1.Equals(str2));
        Debug.Log("使用 == 运算符:" + (str1 == str2));
    }
}

运行结果:

2-2、Compare

Equals方法就是比较两个字符串,如果两个字符串不相等返回-1,两个相等则返回0。

举个例子:

csharp 复制代码
using UnityEngine;

public class TestString : MonoBehaviour
{
    string str1 = "hello";
    string str2 = "world";
    string str3 = "hello";

    void Start()
    {
        Debug.Log("使用 Compare方法,不相等:" + string.Compare(str1,str2));
        Debug.Log("使用 Compare方法,相等:" + string.Compare(str1,str3));
    }
}

运行结果:

2-3、Contains

Contains方法就是比较传递过来的参数,有没有相等的元素,有返回true,没有返回flase。

这个参数可以是字符类型char,也可以是字符串类型string

举个栗子:

csharp 复制代码
using UnityEngine;

public class TestString : MonoBehaviour
{
    string str1 = "hello";
    string str2 = "world";
    char c3 = 'h';

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

运行结果:

2-4、IndexOf

IndexOf方法,还有LastIndexOf方法使用基本一致。
IndexOf方法是从前往后找,返回字符对象在字符串中第一次出现的下标。
LastIndexOf方法是从前往后找,返回字符对象在字符串中最后一次出现的下标。

举个例子:

csharp 复制代码
using UnityEngine;

public class TestString : MonoBehaviour
{
    string str1 = "helloworld";
    string c2 = "o";

    void Start()
    {
        Debug.Log("使用 IndexOf方法:" + str1.IndexOf(c2));//4
        Debug.Log("使用 LastIndexOf方法:" + str1.LastIndexOf(c2));//6
    }
}

运行结果:

2-5、StartsWith

StartsWith方法用于检测字符串是否以指定的子字符串开始,是返回true,否返回false,方法对大小写敏感。

EndWith方法用于检测字符串是否以指定的子字符串结束,是返回true,否返回false,方法对大小写敏感。

举个例子:

csharp 复制代码
using UnityEngine;

public class TestString : MonoBehaviour
{
    string str1 = "helloworld";
    string c2 = "he";

    void Start()
    {
        Debug.Log("使用 StartsWith方法:" + str1.StartsWith(c2));
        Debug.Log("使用 EndsWith方法:" + str1.EndsWith(c2));
    }
}

运行结果:

三、后记

本篇文章,讲解了string字符串中常用的比较字符串的方法。

  • 比较字符串是否完全一样,可以用Equals
  • 比较两个字符串是否一样,可以用Compare,跟Equals不同的是,Equals是返回bool类型,Compare返回int类型。
  • 比较字符串中是否存在某个字符串可以用Contains
  • 比较字符串中是否存在某个字符串开头或者结尾可以用StartsWithEndWith,也就是比Contains增加了一层限制。
  • 比较字符串在某个字符串中出现第一次或者最后一次的下标,可以用IndexOfLastIndexOf

如果有什么疑问都可以联系作者。

如果觉得本篇文章有用别忘了点个关注,关注不迷路,持续分享更多Unity干货文章。


你的点赞就是对博主的支持,有问题记得留言:

博主主页有联系方式。

博主还有跟多宝藏文章等待你的发掘哦:

专栏 方向 简介
Unity3D开发小游戏 小游戏开发教程 分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。
Unity3D从入门到进阶 入门 从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。
Unity3D之UGUI UGUI Unity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。
Unity3D之读取数据 文件读取 使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。
Unity3D之数据集合 数据集合 数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。
Unity3D之VR/AR(虚拟仿真)开发 虚拟仿真 总结博主工作常见的虚拟仿真需求进行案例讲解。
Unity3D之插件 插件 主要分享在Unity开发中用到的一些插件使用方法,插件介绍等
Unity3D之日常开发 日常记录 主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等
Unity3D之日常BUG 日常记录 记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。
相关推荐
与火星的孩子对话14 分钟前
Unity进阶课程【六】Android、ios、Pad 终端设备打包局域网IP调试、USB调试、性能检测、控制台打印日志等、C#
android·unity·ios·c#·ip
future141220 分钟前
C#每日学习日记
java·学习·c#
幻世界2 小时前
【Unity智能模型系列】Unity + MediaPipe + Sentis + ArcFace模型:构建高效人脸识别比对系统
unity·游戏引擎
军训猫猫头4 小时前
1.如何对多个控件进行高效的绑定 C#例子 WPF例子
开发语言·算法·c#·.net
漫游者Nova9 小时前
虚幻引擎Unreal Engine5恐怖游戏设计制作教程,从入门到精通从零开始完整项目开发实战详细讲解中英字幕
ue5·游戏引擎·虚幻·游戏开发完整教程·恐怖游戏开发
死也不注释18 小时前
【Unity 编辑器工具开发:GUILayout 与 EditorGUILayout 对比分析】
unity·编辑器·游戏引擎
葬歌倾城20 小时前
JSON的缩进格式方式和紧凑格式方式
c#·json
Eiceblue21 小时前
使用 C# 发送电子邮件(支持普通文本、HTML 和附件)
开发语言·c#·html·visual studio
小小小小王王王1 天前
hello判断
开发语言·c#
金增辉1 天前
基于C#的OPCServer应用开发,引用WtOPCSvr.dll
c#