删除最后两个字符串char!

时间:2009-08-24 10:04:08

标签: asp.net vb.net string

以下代码:

If checkboxList.Items(i).Selected Then 
   .Fields("DESC1").Value += checkboxList.Items(i).Text + ", "
End If

应生成诸如“A,B,C,(space)”之类的输出,然后将其绑定到动态创建的GridView。我想删除最后的两个字符串,即“,(空格)”。我怎么能这样做?

10 个答案:

答案 0 :(得分:7)

看看String.Join,这可能会做你想要的,而不需要操纵最后两个字符。

答案 1 :(得分:4)

我不会在第一时间添加它们:)尝试

If checkboxList.Items(i).Selected Then    
    if .Fields("DESC1").Value Is System.DbNull.Value then
        .Fields("DESC1").Value = checkboxList.Items(i).Text
    else
        .Fields("DESC1").Value +=  ", " + checkboxList.Items(i).Text
    End If
End If

答案 2 :(得分:3)

有关信息,字符串连接很昂贵。它看起来(来自i和结果)就像你应该真正使用StringBuilder;一些粗略的伪代码(在C#中,但很容易转换为VB.Net):

StringBuilder sb = new StringBuilder();
for(int i = 0 ; i < checkboxList.Items.Count ; i++) {
    if(checkboxList.Items[i].Selected) {
        if(sb.Length > 0) sb.Append(", "); // add separator
        sb.Append(checkboxList.Items[i].Text); // add text
    }
}
someOjb.Fields("DESC1") = sb.ToString(); // use result

答案 3 :(得分:1)

看来你只想从“A,B,C”获得“A,B,C”。一些简单的字符串操作应该可以完成这项工作:

Dim input = "A, B, C, "
Dim result = input.Substring(0, input.LastIndexOf(","))

这比简单地删除最后两个字符更通用,因为它会查找最后一个逗号,这是我相信你所追求的。

当然,你在第一时间添加这两个字符的事实听起来有点狡猾。然而,我需要看到更多的背景来说明如何避免这种情况。

答案 4 :(得分:1)

你可以在字符串上使用.TrimEnd(“,”。ToCharArray()),或者你可以使用SubString:

strLetters.Substring(0, strLetters.Length - 2)

答案 5 :(得分:0)

使用

.Fields("DESC1").Value += checkboxList.Items(i).Text + ", "

. Fields("DESC1").Value = .Fields("DESC1").Value.TrimRight(new []{',',' '});

PS: - 抱歉,如果它是无效的vb语法:)

答案 6 :(得分:0)

还有“删除”:

string k = "okay";
string s = k.Remove(k.Length - 2, 2);

答案 7 :(得分:0)

这将删除所有尾随和/或[空格]:

.Fields("DESC1").Value = .Fields("DESC1").Value.TrimRight(", ".ToCharArrray()) 

答案 8 :(得分:0)

var selectedValues = checkboxList.Items
    .Where(i => i.Selected)
    .Select(i => i.Fields("DESC1").Value);

var result = String.Join(", ", selectedValues); 

答案 9 :(得分:-1)

VB是否有三元运算符?

If checkboxList.Items(i).Selected Then 
    .Fields("DESC1").Value += checkboxList.Items(i).Text + (i == checkboxList.Items.Length-1 ? "" : ", ")
End If