C#语法基础

错误:
namespace Test
{
class Program
{
static void Main(string[] args)
{
//定义一个2行3列的二维数组
//此处发生错误, 使用int[][]定义二维数组时,不能指定列数
//可以修改为 int[,] arr=new int[2,3] ;或者int[][] arr=new int[2][];
int[][] arr=new int[2][3];
arr[0][0]=0;
arr[0][1]=1;
arr[0][2]=2;
arr[1][0]=3;
arr[1][1]=4;
arr[1][2]=5;
}
}
}

decimal类型:表示128位数据类型,适合于财务和货币计算。
decimal d = 3.14m

console.WriteLine("C:\\Windows\\Microsoft.Net\\Framework") 很多个\\
console.WriteLine( @ "C:\Windows\Microsoft.Net\Framework") 不需要转译

静态变量可在其他类中使用
class Test{
int x=45;
static int y = 90;
}
class Test2{
int z = Test.y;
}

const与readonly
在java中声明静态常量方式为public static final;在C#中仅需一个const关键字。
错误:
class Programe{
readonly int Price;
Programe(){
Price = 368;
}
static void Main(string[] args){
Programe p = new Programe();
p.Price = 365; //此处出错,只能在构造函数中修改
}
}

低精度类型自增
错误:
byte a=1;
a = a+1;
正确:
byte a=1;
a += 1;

字符串
一、提取字符串信息
0.Length
1.IndexOf
2.LastIndexOf
3.StartsWith
public bool StartsWith(string value)
public bool StartsWith(string value,bool ignoreCase,CultureInfo culture)
  • value:要比较的字符串
  • ignoreCase:是否忽略大小写
  • culture:如何与value进行比较的区域性信息,一般为null
4.EndsWith
参数同StartsWith
二、字符串操作
1.字符串拼接:
“+”拼接
2.比较字符串:
a) "=="
b) Equals
public bool Equals(string value)
public static bool Equals (string a,string b)
3.字符串大小写转换:
ToUpper;ToLower
4.格式化字符串:P142
Format
public static string Format(string format,Object arg0)
public static string Format(string format,params Object[] args)
解释:
class Program
{
static void Main(string[] args)
{
// 输出金额
Console.WriteLine(string.Format("1251+3950的结果是(以货币形式显示):{0:C}", 1251 + 3950));
// 输出科学计数法
Console.WriteLine(string.Format("120000.1用科学计数法表示:{0:E}", 120000.1));
// 输出以分隔符显示的数字
Console.WriteLine(string.Format("12800以分隔符数字显示的结果是:{0:N0}", 12800));
// 输出小数点后两位
Console.WriteLine(string.Format("π取两位小数点:{0:F2}", Math.PI));
// 输出16进制
Console.WriteLine(string.Format("33的16进制结果是:{0:X4}", 33));
// 输出百分号数字
Console.WriteLine(string.Format("天才是由 {0:P0} 的灵感,加上 {1:P0} 的汗水 。", 0.01, 0.99));
Console.ReadLine();
}
}
{0:N0}显示数字不包括小数 {0:F2}表示保留两位小数 {0:X4}表示显示4位数形式的十六进制数
{0:P0}表示显示的百分比中不包括小数
static void Main(string[] args)
{
DateTime strDate = DateTime.Now; //获取当前日期时间
// 输出短日期格式
Console.WriteLine(string.Format("当前日期的短日期格式表示:{0:d}", strDate));
// 输出长日期格式
Console.WriteLine(string.Format("当前日期的长日期格式表示:{0:D}", strDate));
Console.WriteLine();//换行
// 输出完整日期/时间格式(短时间)
Console.WriteLine(string.Format("当前日期时间的完整日期/时间格式(短时间)表示:{0:f}", strDate));
// 输出完整日期/时间格式(长时间)
Console.WriteLine(string.Format("当前日期时间的完整日期/时间格式(长时间)表示:{0:F}", strDate));
Console.WriteLine();//换行
// 输出常规日期/时间格式(短时间)
Console.WriteLine(string.Format("当前日期时间的常规日期/时间格式(短时间)表示:{0:g}", strDate));
// 输出常规日期/时间格式(长时间)
Console.WriteLine(string.Format("当前日期时间的常规日期/时间格式(长时间)表示:{0:G}", strDate));
Console.WriteLine();//换行
// 输出时间格式
Console.WriteLine(string.Format("当前时间的短时间格式表示:{0:t}", strDate));
// 输出长时间格式
Console.WriteLine(string.Format("当前时间的长时间格式表示:{0:T}", strDate));
Console.WriteLine();//换行
// 输出月/日格式
Console.WriteLine(string.Format("当前日期的月/日格式表示:{0:M}", strDate));
// 输出年/月格式
Console.WriteLine(string.Format("当前日期的年/月格式表示:{0:Y}", strDate));
Console.ReadLine();
}
5.截取字符串
Substring(int startIndex)
Substring(int startIndex,int length)
static void Main(string[] args)
{
string strFile = "Program.cs"; //定义字符串
Console.WriteLine("文件完整名称:" + strFile); //输出文件完整名称
string strFileName = strFile.Substring(0, strFile.IndexOf('.')); //获取文件名
string strExtension = strFile.Substring(strFile.IndexOf('.')); //获取扩展名
Console.WriteLine("文件名:" + strFileName); //输出文件名
Console.WriteLine("扩展名:" + strExtension); //输出扩展名
Console.ReadLine();
}
6.分割字符串
Split
名称
说明

String.Split (Char[])
返回包含此实例中的子字符串
(由指定 Char 数组的元素分隔)的 String 数组。
由 .NET Compact Framework 支持。
String.Split (Char[], Int32)
返回包含此实例中的子字符串
(由指定 Char 数组的元素分隔)的 String 数组。
参数指定返回的子字符串的最大数量。
String.Split (Char[], StringSplitOptions)
返回包含此字符串中的子字符串
(由指定的 Char 数组的元素分隔)的 String 数组。
参数指定是否返回空数组元素。
String.Split (String[], StringSplitOptions)
返回包含此字符串中的子字符串
(由指定的 String 数组的元素分隔)的 String 数组。
参数指定是否返回空数组元素。
String.Split (Char[], Int32, StringSplitOptions)
返回包含此字符串中的子字符串
(由指定的 Char 数组的元素分隔)的 String 数组。
参数指定要返回子字符串的最大数量,以及是否要返回空数组元素。
String.Split (String[], Int32, StringSplitOptions)
返回包含此字符串中的子字符串
(由指定的 String 数组的元素分隔)的 String 数组。
参数指定要返回子字符串的最大数量,以及是否要返回空数组元素。

static void Main(string[] args)
{
//声明字符串
string str = "让编程学习不再难,让编程创造财富不再难,让编程改变工作和人生不再难";
char[] separator = { ',' };//声明分割字符的数组
//分割字符串
string[] splitStrings = str.Split(separator, StringSplitOptions.RemoveEmptyEntries);
//使用for循环遍历数组,并输出
for (int i = 0; i < splitStrings.Length; i++)
{
Console.WriteLine(splitStrings[i]);
}
Console.ReadLine();
}
7.去除空字符串
trim
8.替换字符串
Replace
public string Replace(char Ochar,char Nchar) //替换字符
public string Replace(string Ovalue,string Nvalue) //替换字符串
三、可变字符串类
使用“+”可以达到附加新字符或字符串的目的,但 “+”会产生一个新的string对象,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将会极大 增加系统开销
StringBuilder
StringBuilder类位于System.Text命名空间中,如果要创建StringBuilder对象,首先必须引用该命,
名空间。 StringBuilder类有6种不同的构造方法,分别如下:
public StringBuilder()
public StringBuilder(int capacity)
public StringBuilder(string value)
public StringBuilder(int capacity,int maxCapacity)
public StringBuilder(string value,int capacity)
public stringBuilder(string value, int startIndex, int length,int capacity)
◆ capacity : StringBuilder对象的建议起始大小。
◆ value :字符串,包含用于初始化StringBuilder对象的子字符串。
◆ maxCapacity :当前字符串可包含的最大字符数。
◆ startIndex : value中子字符串开始的位置.
◆length:子字符串中的字符数。
创建一个StringBuilder对象,其初始引用的字符串为"Hello World!",代码如下:
StringBuilder MyStringBuilder = new StringBuilder("Hello world!");
说明: StringBuilder类表示值为可变字符序列的类似字符串的对象,之所以说值是可变的,是因为在通过追加、移除,替换或插入字符而创建它后可以对它进行修改.
Append
将文本或字符串追加到指定对象的末尾
AppendFormat
自定义变量的格式并将这些值
追加到StringBuilder对象的末尾
Insert
将字符串或对象添加到当前StringBuilder对象中的
指定位置
Remove
从当前StringBuilder对象中移除指定数量的字符
Replace
用另一个指定的字符来替换StringBuilder对象
内的字符
实例:
static void Main(string[] args)
{
int Num = 368; //声明一个int类型变量Num并初始化为368
//实例化一个StringBuilder类,并初始化为“明日科技”
StringBuilder SBuilder = new StringBuilder("明日科技");
SBuilder.Append("》C#编程词典"); //使用Append方法将字符串追加到SBuilder的末尾
Console.WriteLine(SBuilder); //输出SBuilder
//使用AppendFormat方法将字符串按照指定的格式追加到SBuilder的末尾
SBuilder.AppendFormat("{0:C0}", Num);
Console.WriteLine(SBuilder); //输出SBuilder
SBuilder.Insert(0, "软件:"); //使用Insert方法将“软件:”追加到SBuilder的开头
Console.WriteLine(SBuilder); //输出SBuilder
//使用Remove方法从SBuilder中删除索引14以后的字符串
SBuilder.Remove(14, SBuilder.Length - 14);
Console.WriteLine(SBuilder); //输出SBuilder
//使用Replace方法将“软件:”替换成“软件工程师必备”
SBuilder.Replace("软件", "软件工程师必备");
Console.WriteLine(SBuilder); //输出SBuilder
Console.ReadLine();
}
当程序中需要 大量的对某个字符串进行操作时 ,应该考虑应用StringBuilder类处理该字!目的就是针对大量string操作的一种改进办法,避免产生太多的临时对象;而当程序中串 进行一次或几次操作时,采用string类即可.




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值