永发信息网

C#截取字符串的问题,帮忙看下。

答案:4  悬赏:10  手机版
解决时间 2021-05-03 01:04
public static string CutString(string inputString,int len)
{


ASCIIEncoding ascii = new ASCIIEncoding();
int tempLen=0;
string tempString="";
byte[] s = ascii.GetBytes(inputString);
for(int i=0;i<s.Length;i++)
{
if((int)s[i]==63)
{
tempLen+=2;
}
else
{
tempLen+=1;
}

try
{
tempString+=inputString.Substring(i,1);
}
catch
{
break;
}

if(tempLen>len)
break;
}
//如果截过则加上半个省略号
byte[] mybyte=System.Text.Encoding.Default.GetBytes(inputString);
if(mybyte.Length>len)
tempString+="…";


return tempString;
}
里面的每步意思帮忙解释一下。
最佳答案

上面的很正确,补充:


if(tempLen>len)
break;


当tempLen>len时,跳出循环;

全部回答

// SubText(“abc我是小刀", 5, "...") /=abc我是...

public static string SubText(string s, int length, string ex) { if (s == null || s.Trim().Length == 0) return s; if (s.Length > length) return s.Substring(0, length) + ex; return s; }

// SubChar(“abc我是小刀", 5, "...") /=abc我...

public static string SubChar(string s, int length, string ex) { if (length <= 0) throw new ArgumentException("length"); if (s == null || s.Trim().Length == 0) return s; int index = 0; string result = ""; foreach (int c in s) { index += c >= 19968 && c <= 40869 ? 2 : 1; result += (char)c; if (index > length) return result + ex; } return result; }

c#中的String类中有substring()方法

public static string CutString(string inputString,int len) { ASCIIEncoding ascii = new ASCIIEncoding();//NEW 个ASCLL键盘码 int tempLen=0;//定义一个整型 变量 默认值为 0 string tempString=""; 定义一个字符型 默认值为 空 byte[] s = ascii.GetBytes(inputString);//搞了个 byte 数组 for(int i=0;i<s.Length;i++)//循环这个数组 {if((int)s[i]==63)判断这个数组里面的 键盘 ASCII码 是否是63 ,也就是说当有人按了键盘就判断按的是否按的是63 {tempLen+=2; } else { tempLen+=1; } try {// 字符串截取,比如 字符传 "123456".Substring(0,1); 结果是1,意思是重这串字符长度索引为0开始截取1位字符 tempString+=inputString.Substring(i,1);//Substring(i,1); i 是 重这个字符串的第几个开始截取,1 就是截取多少个 } catch { break; } if(tempLen>len) break; } //如果截过则加上半个省略号 byte[] mybyte=System.Text.Encoding.Default.GetBytes(inputString);

//也是搞了个数组 if(mybyte.Length>len)//判断 这个数据的元素是否大于 len tempString+="…";//大于 len 就在 tempString +"...." return tempString;//把 tempString 值 反出来

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
公务员考试的分数
新教材英语听力到哪下载
航杞百货在什么地方啊,我要过去处理事情
有没有好听的歌伤感的
信用卡购物
怎样很快的祛太阳斑????????
请问QQ炫舞中怎样才能免费得QB?
丑姑娘相声排成片段有吗?给个地址
佳龙公司生猪屠宰分割厂在哪里啊,我有事要去
这么点亮QQ博客图标
怎么在拍拍上充话费?
旧电脑显示器多少钱,这个旧电脑大概能卖多少
电脑在开机过程中死机
滕翼C30长宽高
国会公馆在什么地方啊,我要过去处理事情
推荐资讯
战国七雄君主?
中国移动中城手机城这个地址在什么地方,我要
阿当鲜果在什么地方啊,我要过去处理事情
蓝球明星孙悦 应该 下去么
谁有天空之城的八音盒版 麻烦传到我邮箱里
有什麼英文hip pop的歌曲?
我飞信被黑了!急!!
为什么打蚊子加不了积分呢
从十堰到天津西青区怎么走,有多少公里
流量卜够怎麽办?五元一月最多有好多兆?
什么食品可以补血?
味莱基传媒店这个地址在什么地方,我要处理点
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?