百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

C#编程零基础到入门学习-C#字符串类型(4-3)

bigegpt 2024-10-12 05:23 6 浏览

C# 字符串类型

在 C# 中,允许使用字符数组来表示字符串,但是,常见的做法是使用 string 关键字来声明一个字符串变量。string 关键字是 System.String 类的别名。

创建 String 对象

可使用以下方法之一来创建 string 对象:

  • 通过给 String 变量指定一个字符串
  • 通过使用 String 类构造函数
  • 通过使用字符串串联运算符( +
  • 通过检索属性或调用一个返回字符串的方法
  • 通过格式化方法来转换一个值或对象为它的字符串表示形式

例如(源代码):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StringVar
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //字符串,字符串连接
            string ename,fname, lname;
            ename = "TOM";
            fname = "jim";
            lname = "Atkinson";
            string fullname = ename+fname + lname;
            Console.WriteLine("Full Name: {0}", fullname);
            //通过使用 string 构造函数
            char[] letters = { 'H', 'e', 'l', 'l', 'o' };
            string greetings = new string(letters);
            Console.WriteLine("Greetings: {0}", greetings);
            //方法返回字符串
            string[] sarray = { "Hello", "From", "Tutorials", "Point" };
            string message = String.Join(" ", sarray);
            Console.WriteLine("Message: {0}", message);
            //用于转化值的格式化方法
            DateTime waiting = new DateTime(2023, 09, 05, 08, 00, 1);
            string chat = String.Format("Message sent at {0:t} on {0:D}",
            waiting);
            Console.WriteLine("Message: {0}", chat);
            Console.ReadKey();
        }
    }
}

结果:

Full Name: TOMjimAtkinson
Greetings: Hello
Message: Hello From Tutorials Point
Message: Message sent at 8:00 on 2023年9月5日


String 类的属性

1、Chars在当前 String 对象中获取 Char 对象的指定位置。

2、Length在当前的 String 对象中获取字符数

String 类的方法

String 类有许多方法用于 string 对象的操作。

例如:

1、public static int Compare( string strA, string strB ) 比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。该方法区分大小写。

2、public static int Compare( string strA, string strB, bool ignoreCase ) 比较两个指定的 string 对象,并返回一个表示它们在排列顺序中相对位置的整数。但是,如果布尔参数为真时,该方法不区分大小写。

3、public static string Concat( string str0, string str1 ) 连接两个 string 对象。

4、public static string Concat( string str0, string str1, string str2 ) 连接三个 string 对象。

5、public static string Concat( string str0, string str1, string str2, string str3 ) 连接四个 string 对象。

6、public bool Contains( string value ) 返回一个表示指定 string 对象是否出现在字符串中的值。

7、public static string Copy( string str ) 创建一个与指定字符串具有相同值的新的 String 对象。

8、public void CopyTo( int sourceIndex, char[] destination, int destinationIndex, int count ) 从 string 对象的指定位置开始复制指定数量的字符到 Unicode 字符数组中的指定位置。

9、public bool EndsWith( string value ) 判断 string 对象的结尾是否匹配指定的字符串。

10、public bool Equals( string value ) 判断当前的 string 对象是否与指定的 string 对象具有相同的值。

11、public static bool Equals( string a, string b ) 判断两个指定的 string 对象是否具有相同的值。

12、public static string Format( string format, Object arg0 ) 把指定字符串中一个或多个格式项替换为指定对象的字符串表示形式。

13、public int IndexOf( char value ) 返回指定 Unicode 字符在当前字符串中第一次出现的索引,索引从 0 开始。

14、public int IndexOf( string value ) 返回指定字符串在该实例中第一次出现的索引,索引从 0 开始。

15、public int IndexOf( char value, int startIndex ) 返回指定 Unicode 字符从该字符串中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。

16、public int IndexOf( string value, int startIndex ) 返回指定字符串从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。

17、public int IndexOfAny( char[] anyOf ) 返回某一个指定的 Unicode 字符数组中任意字符在该实例中第一次出现的索引,索引从 0 开始。

18、public int IndexOfAny( char[] anyOf, int startIndex ) 返回某一个指定的 Unicode 字符数组中任意字符从该实例中指定字符位置开始搜索第一次出现的索引,索引从 0 开始。

19、public string Insert( int startIndex, string value ) 返回一个新的字符串,其中,指定的字符串被插入在当前 string 对象的指定索引位置。

20、public static bool IsNullOrEmpty( string value ) 指示指定的字符串是否为 null 或者是否为一个空的字符串。

21、public static string Join( string separator, string[] value ) 连接一个字符串数组中的所有元素,使用指定的分隔符分隔每个元素。

22、public static string Join( string separator, string[] value, int startIndex, int count ) 连接接一个字符串数组中的指定位置开始的指定元素,使用指定的分隔符分隔每个元素。

23、public int LastIndexOf( char value ) 返回指定 Unicode 字符在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。

24、public int LastIndexOf( string value ) 返回指定字符串在当前 string 对象中最后一次出现的索引位置,索引从 0 开始。

25、public string Remove( int startIndex ) 移除当前实例中的所有字符,从指定位置开始,一直到最后一个位置为止,并返回字符串。

26、public string Remove( int startIndex, int count ) 从当前字符串的指定位置开始移除指定数量的字符,并返回字符串。

27、public string Replace( char oldChar, char newChar ) 把当前 string 对象中,所有指定的 Unicode 字符替换为另一个指定的 Unicode 字符,并返回新的字符串。

28、public string Replace( string oldValue, string newValue ) 把当前 string 对象中,所有指定的字符串替换为另一个指定的字符串,并返回新的字符串。

29、public string[] Split( params char[] separator ) 返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。

30、public string[] Split( char[] separator, int count ) 返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。int 参数指定要返回的子字符串的最大数目。

31、public bool StartsWith( string value ) 判断字符串实例的开头是否匹配指定的字符串。

32、public char[] ToCharArray()返回一个带有当前 string 对象中所有字符的 Unicode 字符数组。

33、public char[] ToCharArray( int startIndex, int length ) 返回一个带有当前 string 对象中所有字符的 Unicode 字符数组,从指定的索引开始,直到指定的长度为止。

34、public string ToLower()把字符串转换为小写并返回。

35、public string ToUpper()把字符串转换为大写并返回。

36、public string Trim()移除当前 String 对象中的所有前导空白字符和后置空白字符。

如果有更多的需求请访问 MSDN 库,查看完整的方法列表和 String 类构造函数。

示例源代码1-字符串与字符串相比较:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StringVar01
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string str1 = "This is String";
            string str2 = "This is Variable";
            if (String.Compare(str1, str2) == 0)
            {
                Console.WriteLine(str1 + " and " + str2 + " are equal.");
            }
            else
            {
                Console.WriteLine(str1 + " and " + str2 + " are not equal.");
            }
            Console.ReadKey();
        }
    }
}


This is String and This is Variable are not equal.

示例源代码2-字符串内包含字符串:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StringVar02
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string str = "This is StringVar02 ";
            string str1 = "my name is Tom";
            if (str.Contains("test"))//如果字符串内包含“test”
            {
                Console.WriteLine("未发现“test”字符串");
            }
            else
            {
                Console.WriteLine("请检查(str)字符串");
            }
            if (str1.Contains("Tom"))//如果字符串内包含“Tom”
            {
                Console.WriteLine("第二个字符串(str1)内包含'Tom'");
            } 
            Console.ReadKey();
        }
    }
}


示例源代码3-获取子字符串:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StringVar03
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string str = "Last night I dreamt of ZhouGong";
            Console.WriteLine(str);//先输出上述句子
            string substr1 = str.Substring(23);//23开始后截取字符串
            string substr2 = str.Substring(0,10);//第一个字符串开始截取10位
            Console.WriteLine(substr1);//输出截取后的字符串
            Console.WriteLine(substr2);
            Console.ReadKey();
        }
    }
}


示例源代码4-连接字符串:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StringVar04
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string[] strArray = new string[]{"1、通过给 String 变量指定一个字符串",
               "2、通过使用 String 类构造函数",
               "3、通过使用字符串串联运算符( + )",
               "4、通过检索属性或调用一个返回字符串的方法",
               "5、通过格式化方法来转换一个值或对象为它的字符串表示形式"};//新建字符串列表
            string str1 = String.Join("\t",strArray);
            string str2 = String.Join("\n", strArray);
            Console.WriteLine(str1);
            Console.WriteLine("------------------------------------------------------");
          //st1和str2输出的分割线
            Console.WriteLine(str2);
            Console.ReadKey();
        }
    }
}


方法不再一一举例了,有兴趣的可以逐一练习。

相关推荐

得物可观测平台架构升级:基于GreptimeDB的全新监控体系实践

一、摘要在前端可观测分析场景中,需要实时观测并处理多地、多环境的运行情况,以保障Web应用和移动端的可用性与性能。传统方案往往依赖代理Agent→消息队列→流计算引擎→OLAP存储...

warm-flow新春版:网关直连和流程图重构

本期主要解决了网关直连和流程图重构,可以自此之后可支持各种复杂的网关混合、多网关直连使用。-新增Ruoyi-Vue-Plus优秀开源集成案例更新日志[feat]导入、导出和保存等新增json格式支持...

扣子空间体验报告

在数字化时代,智能工具的应用正不断拓展到我们工作和生活的各个角落。从任务规划到项目执行,再到任务管理,作者深入探讨了这款工具在不同场景下的表现和潜力。通过具体的应用实例,文章展示了扣子空间如何帮助用户...

spider-flow:开源的可视化方式定义爬虫方案

spider-flow简介spider-flow是一个爬虫平台,以可视化推拽方式定义爬取流程,无需代码即可实现一个爬虫服务。spider-flow特性支持css选择器、正则提取支持JSON/XML格式...

solon-flow 你好世界!

solon-flow是一个基础级的流处理引擎(可用于业务规则、决策处理、计算编排、流程审批等......)。提供有“开放式”驱动定制支持,像jdbc有mysql或pgsql等驱动,可...

新一代开源爬虫平台:SpiderFlow

SpiderFlow:新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。-精选真开源,释放新价值。概览Spider-Flow是一个开源的、面向所有用户的Web端爬虫构建平台,它使用Ja...

通过 SQL 训练机器学习模型的引擎

关注薪资待遇的同学应该知道,机器学习相关的岗位工资普遍偏高啊。同时随着各种通用机器学习框架的出现,机器学习的门槛也在逐渐降低,训练一个简单的机器学习模型变得不那么难。但是不得不承认对于一些数据相关的工...

鼠须管输入法rime for Mac

鼠须管输入法forMac是一款十分新颖的跨平台输入法软件,全名是中州韵输入法引擎,鼠须管输入法mac版不仅仅是一个输入法,而是一个输入法算法框架。Rime的基础架构十分精良,一套算法支持了拼音、...

Go语言 1.20 版本正式发布:新版详细介绍

Go1.20简介最新的Go版本1.20在Go1.19发布六个月后发布。它的大部分更改都在工具链、运行时和库的实现中。一如既往,该版本保持了Go1的兼容性承诺。我们期望几乎所...

iOS 10平台SpriteKit新特性之Tile Maps(上)

简介苹果公司在WWDC2016大会上向人们展示了一大批新的好东西。其中之一就是SpriteKitTileEditor。这款工具易于上手,而且看起来速度特别快。在本教程中,你将了解关于TileE...

程序员简历例句—范例Java、Python、C++模板

个人简介通用简介:有良好的代码风格,通过添加注释提高代码可读性,注重代码质量,研读过XXX,XXX等多个开源项目源码从而学习增强代码的健壮性与扩展性。具备良好的代码编程习惯及文档编写能力,参与多个高...

Telerik UI for iOS Q3 2015正式发布

近日,TelerikUIforiOS正式发布了Q32015。新版本新增对XCode7、Swift2.0和iOS9的支持,同时还新增了对数轴、不连续的日期时间轴等;改进TKDataPoin...

ios使用ijkplayer+nginx进行视频直播

上两节,我们讲到使用nginx和ngixn的rtmp模块搭建直播的服务器,接着我们讲解了在Android使用ijkplayer来作为我们的视频直播播放器,整个过程中,需要注意的就是ijlplayer编...

IOS技术分享|iOS快速生成开发文档(一)

前言对于开发人员而言,文档的作用不言而喻。文档不仅可以提高软件开发效率,还能便于以后的软件开发、使用和维护。本文主要讲述Objective-C快速生成开发文档工具appledoc。简介apple...

macOS下配置VS Code C++开发环境

本文介绍在苹果macOS操作系统下,配置VisualStudioCode的C/C++开发环境的过程,本环境使用Clang/LLVM编译器和调试器。一、前置条件本文默认前置条件是,您的开发设备已...