StringBuilder 计算逗号并查找位置
StringBuilder count comma and find position
我正在尝试映射两个 StringBuilder:
string builder1 ="abc1,abc2,abc3,abc4,abc2"
string builder2="100,30,15,102,30"
两个 StringBuilder 计数将相同并且已经映射。但我正在搜索一个特定的数字 30
和名称 abc2
即 find(30,abc2)
并删除它
所以我需要跟踪逗号或者任何人都可以建议我最好的做法是删除我不想要的字符串在适当的位置。
如果不使用 Regex,将字符串转换为列表、删除项目,然后重新创建列表可能更容易:
StringBuilder sb1 = new StringBuilder("abc1,abc2,abc3,abc4,abc2");
string find1 = "abc2";
var newList = sb1.ToString().Split(',').ToList();
newList.RemoveAll(x => x == find1);
string result = string.Join(",", newList.ToArray());
对于 VB.Net 版本:
Dim sb1 As New StringBuilder("abc1,abc2,abc3,abc4,abc2")
Dim find1 As String = "abc2"
Dim newList As New List(Of String)(sb1.ToString().Split(","c).ToList)
newList.RemoveAll(Function(x) x = find1)
Dim result As String = String.Join(",", newList.ToArray())
所以我看到了 4 个案例:
- 等于
"abc2"
(似乎不太可能)
- 包含
",abc2,"
- 开头为
"abc2,"
- 以
",abc2"
结尾
Sub removeCSVvalue(sb As StringBuilder, value$)
If sb.Length <= value.Length Then sb.Replace(value, vbNullString) : Return ' If sb = value
sb.Replace("," & value & ",", ",") ' Example: replace ",abc2," with ","
Dim C = value.Length
If sb.Length > C Then If sb(C) = "," Then If sb.ToString(0, C) = value Then sb.Remove(0, C + 1) ' If sb.StartsWith(value & ",")
Dim L = sb.Length - C
If sb.Length > C Then If sb(L - 1) = "," Then If sb.ToString(L, C) = value Then sb.Length = L - 1 ' If sb.EndsWith("," & value)
End Sub
P.S。这让我想起了我的第一个被否决的答案 Remove item from string array :]
我正在尝试映射两个 StringBuilder:
string builder1 ="abc1,abc2,abc3,abc4,abc2"
string builder2="100,30,15,102,30"
两个 StringBuilder 计数将相同并且已经映射。但我正在搜索一个特定的数字 30
和名称 abc2
即 find(30,abc2)
并删除它
所以我需要跟踪逗号或者任何人都可以建议我最好的做法是删除我不想要的字符串在适当的位置。
如果不使用 Regex,将字符串转换为列表、删除项目,然后重新创建列表可能更容易:
StringBuilder sb1 = new StringBuilder("abc1,abc2,abc3,abc4,abc2");
string find1 = "abc2";
var newList = sb1.ToString().Split(',').ToList();
newList.RemoveAll(x => x == find1);
string result = string.Join(",", newList.ToArray());
对于 VB.Net 版本:
Dim sb1 As New StringBuilder("abc1,abc2,abc3,abc4,abc2")
Dim find1 As String = "abc2"
Dim newList As New List(Of String)(sb1.ToString().Split(","c).ToList)
newList.RemoveAll(Function(x) x = find1)
Dim result As String = String.Join(",", newList.ToArray())
所以我看到了 4 个案例:
- 等于
"abc2"
(似乎不太可能) - 包含
",abc2,"
- 开头为
"abc2,"
- 以
",abc2"
结尾
Sub removeCSVvalue(sb As StringBuilder, value$)
If sb.Length <= value.Length Then sb.Replace(value, vbNullString) : Return ' If sb = value
sb.Replace("," & value & ",", ",") ' Example: replace ",abc2," with ","
Dim C = value.Length
If sb.Length > C Then If sb(C) = "," Then If sb.ToString(0, C) = value Then sb.Remove(0, C + 1) ' If sb.StartsWith(value & ",")
Dim L = sb.Length - C
If sb.Length > C Then If sb(L - 1) = "," Then If sb.ToString(L, C) = value Then sb.Length = L - 1 ' If sb.EndsWith("," & value)
End Sub
P.S。这让我想起了我的第一个被否决的答案 Remove item from string array :]