关于一个字符串长度的判断写法,请教!

yangnl1982 2008-04-02 10:06:23
应用中面临一个截取字符串前20个字符的问题我是如下实现的:
<td colspan="2"><b>介绍:</b><%# ((System.Data.DataRowView) Container.DataItem)["Intro"].ToString().Substring(0,20)+"......."%></td>
用substeing(0,20),但这个有个问题就是当不够20个字符的时候就出错了,我想加上个判断,不够20就完整的输出,超过20就截取前20个字然后+“......”。

我是新手,请高手不要笑我啊,请教了!
...全文
362 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangnl1982 2008-04-02
  • 打赏
  • 举报
回复
恩,但他提示的是string str=((System.Data.DataRowView) Container.DataItem)["Intro"].ToString();
这一行的错误啊
wxg22526451 2008-04-02
  • 打赏
  • 举报
回复
另外注意Length,Substring的大小写
SYUEHOKO 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sjm2003 的回复:]
3楼解释

C# code
str=str.SubString(0,str.Length>20?20:str.Length); //使用3元运算符( 条件?结果1(true):
结果2(false))该运算符号先判断条件str.Length>20,如果为TRUE,返回20,如果为FALSE,返回str.Length
[/Quote]

wxg22526451 2008-04-02
  • 打赏
  • 举报
回复
string str=((System.Data.DataRowView) Container.DataItem)["Intro"].ToString();
if(str.length>20)
{
str=str.substring(0,20)+"......" ;//这里你少了分号
}
return str;
yangnl1982 2008-04-02
  • 打赏
  • 举报
回复
Compiler Error Message: CS1525: Invalid expression term 'string'

Line 136:string str=((System.Data.DataRowView) Container.DataItem)["Intro"].ToString();

这一行有什么问题呢?
ericzhangbo1982111 2008-04-02
  • 打赏
  • 举报
回复
string temp=str.substring(0,20);
temp=temp+"......" ;
yangnl1982 2008-04-02
  • 打赏
  • 举报
回复
CS1525: Invalid expression term 'string'

提示这个错误!
mine 2008-04-02
  • 打赏
  • 举报
回复
up
yangnl1982 2008-04-02
  • 打赏
  • 举报
回复
<td colspan="2"> <b>介绍: </b> <%#
string str=((System.Data.DataRowView) Container.DataItem)["Intro"].ToString();
if(str.length>20)
{
str=str.substring(0,20)+"......"
}
return str;
%> </td>
我现在写成这样了,但运行提示:
Compiler Error Message: CS1525: Invalid expression term 'string'

Source Error:
Line 134: <tr>
Line 135:<td colspan="2"> <b>介绍: </b> <%#
Line 136:string str=((System.Data.DataRowView) Container.DataItem)["Intro"].ToString();
Line 137:if(str.length>20)
Line 138:{



virusswb 2008-04-02
  • 打赏
  • 举报
回复
if(str.length>20)
{
str=str.substring(0,20)
}
return str;
如果str长度length大于20
就用substring从第一个(下标是0,就像数组)开始取20个字符
如果不是就返回字符return str
colonist 2008-04-02
  • 打赏
  • 举报
回复
javascript 写个方法

function string f1(string str)
{
if(str.length>20)
{
str=str.substring(0,20)
}
return str;
}

<td colspan="2"> <b>介绍: </b>f1(((System.Data.DataRowView) Container.DataItem)["Intro"].ToString())+"......."%> </td>
用substeing(0,20),但这个有个问题就是当不够20个字符的时候就出错了,我想加上个判断,不够20就完整的输出,超过20就截取前20个字然后+“......”。
sjm2003 2008-04-02
  • 打赏
  • 举报
回复
3楼解释

str=str.SubString(0,str.Length>20?20:str.Length); //使用3元运算符( 条件?结果1(true):结果2(false))该运算符号先判断条件str.Length>20,如果为TRUE,返回20,如果为FALSE,返回str.Length
sjm2003 2008-04-02
  • 打赏
  • 举报
回复
1楼解释
if(str.length>20) //如果字符串长度大于20

{
str=str.substring(0,20) //使用你的方法获取前20个字符

}
return str;//返回 前20个字符


其实就是加个判断就OK了。

string str="abc.....";
if(str.length>=20)//长度大于20
{
str=str.substring(0,20)
}
else if(str.length>0&&str.length<20)//长度大于0小于20
{
str=str;
}


dancingbit 2008-04-02
  • 打赏
  • 举报
回复
string str=((System.Data.DataRowView) Container.DataItem)["Intro"].ToString();
str=str.SubString(0,str.Length>20?20:str.Length);
yangnl1982 2008-04-02
  • 打赏
  • 举报
回复
userwjg你好,我是新手看不大明白,能详细的和我的代码一块写一下么?谢谢了
userwjg 2008-04-02
  • 打赏
  • 举报
回复
if(str.length>20)
{
str=str.substring(0,20)
}
return str;

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧