由于js,alert方法弹出的字符长度有限制,所以想用substring来截取一下长度,可是又引进了新的BUG,更可恨的是本地还无法测试,只能添加日志追踪,还好问题总算是发现了,基础真薄弱啊~
一、
Substring(截取子串的起始位置,子串长度)
使用Substring()时的正确写法:
string tmpstr;
if((tmpstr!=null)&&(tmpstr!=""))
{
if(tmpstr.Length>500)
{
tmpstr=tmpstr.Substring(0,500);
}
}
下列情况会触发Substring()产生异常
1、tmpstr=null
2、tmpstr=""
3、tmpstr=String.Empty
4、Substring的起始位置大于tmpstr的长度,Substring的起始位置+截取字符个数大于tmpstr的长度,也就时说Substring的任何操作都不允许超出被处理字符串的长度。
二、
String.SubString(int index,int length)
index:开始位置,从0开始
length:你要取的子字符串的长度
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace str_sub
{
class Program
{
static void Main(string[] args)
string myString = "Hello Word!";
//在C#中有两个重载函数
class Program
{
static void Main(string[] args)
string myString = "Hello Word!";
//在C#中有两个重载函数
//分别如下示例
string subString1 = myString.Substring(0);
//如果传入参数为一个长整, 且大于等于0,
string subString1 = myString.Substring(0);
//如果传入参数为一个长整, 且大于等于0,
//则以这个长整的位置为起始,
//截取之后余下所有作为字串
//截取之后余下所有作为字串
//如若传入值小于0,
//系统会抛出ArgumentOutOfRange异常
//系统会抛出ArgumentOutOfRange异常
//表明参数范围出界
string subString2 = myString.Substring(0, 5);
//如果传入了两个长整参数,
//前一个为参数子串在原串的起始位置
string subString2 = myString.Substring(0, 5);
//如果传入了两个长整参数,
//前一个为参数子串在原串的起始位置
//后一个参数为子串的长度
//如不合条件同样出现上述异常
Console.WriteLine(subString1);
Console.WriteLine(subString1);
Console.WriteLine(subString2);
Console.ReadLine();
Hello Word!
Hello
Hello