C#之字符串类型互转与搜索

一、int、double等数字类型与字符串互转

在C#中通常会需要将int、double、float等数字类型转换为字符串类型,通过int等类型自带的Tostring()函数可以方便地转换为字符串类型,并且可以控制转换成的字符串格式,具体使用如下:

说明示例输出
控制整数位数12.ToString(“D4”)0012
控制小数位数1.2.ToString(“F2”)1.20
科学计数1200.ToString(“E”)1.200000E+003
科学计数控制位数1200.ToString(“E1”)1.2E+003
转换为16进制12.ToString(“X”)C
控制16进制位数12.ToString(“X2”)0C
转换为货币22.ToString(“C”)¥22.00(中文系统默认格式化人民币,英文系统格式化美元)
转换为百分比22.ToString(“P”)2,200.00%

上述转换也可以通过string.Format()函数实现,如下图所示:
在这里插入图片描述

有时需要将字符串转换为int、double类型,可以通过Convert类或Double等类型结构体内部的函数来实现,示例代码如下:

string a = "22";
int a1 = Convert.ToInt32(a);
//int a1 = Int32.Parse(a);
a = "22.1";
double a2 = Convert.ToDouble(a);
//double a2 = Double.Parse(a);

二、DateTime类型与字符串互转

C#中表示日期的类型为DateTime,通常需要将日期转换为特定的字符串格式,格式设置说明如下图所示:
在这里插入图片描述

互相转换示例代码如下:

DateTime datetime = System.DateTime.Now;
string date = "";
date = datetime.ToString("yyyy/MM/dd hh:mm:ss");//转换的字符串格式具体可以参照上图进行设置
//转换为DateTime方法一
DateTime date01 = Convert.ToDateTime(date);
//转换为DateTime方法二
DateTimeFormatInfo dateTimeFormatInfo = new DateTimeFormatInfo();
dateTimeFormatInfo.ShortDatePattern = "yyyy/MM/dd";
DateTime date02 = Convert.ToDateTime("2021/01/01", dateTimeFormatInfo);

三、字符串搜索

要实现字符串搜索功能,通常有三种方法,一种是使用string.Contains()函数,该函数可以很方便地判断字符串中是否包含目标字符串,返回值为bool类型,无法返回目标值的索引。
第二种是使用string.IndexOf()函数,该函数返回值为int类型,能够返回目标字符串的索引,如果未搜索到则返回-1,并且可以通过参数设置实现不区分字母大小写搜索,示例代码如下:

string a = "Hello";
bool Code = a.Contains("He");
int index = a.IndexOf("he", StringComparison.OrdinalIgnoreCase);//忽视大小写

第三种是使用正则表达式,正则表达式功能最为强大,能够实现复杂规则的字符串匹配搜索,但匹配规则设置较为繁琐,熟练掌握比较困难,下面列出常用的几种搜索规则:
在这里插入图片描述
在这里插入图片描述

示例代码如下:

using System.Text.RegularExpressions;
...
string str01 = "12345abc"
string pattern = "[^0123456789.]";//搜索除数字和小数点以外的字符
MatchCollection mc = Regex.Matches(str01, pattern);
if (mc.Count > 0)
{
    MessageBox.Show("字符串中包含除数字和小数点以外的字符");
}

参考文档

C#中ToString()格式详解
string.Format对C#字符串格式化
c#16进制与字符串的互转
C#日期格式字符串的相互转换
C#中字符串转换为计算公式(自定义公式的计算)
VB 进制转换大全
C# 正则表达式
C# 正则表达式大全(转载)
详细介绍C# string格式的日期时间字符串转为DateTime类型的方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值