C#中读取TextBox账户列表并拆分用户名与密码
拆分TextBox中USERNAME:PASSWORD格式的账户信息
嘿,太懂这种卡了一小时摸不着头绪的感觉了!别慌,拆分这种冒号分隔的格式其实没那么复杂,我给你一步步讲清楚:
首先,咱们得先把TextBox里的内容按行拆分开(毕竟账户应该是一行一个对吧?),然后对每一行再用冒号做拆分,把用户名和密码分别提取成独立字符串。
举个C#的实现例子(最常用的场景)
// 先获取TextBox里的全部文本内容 string allAccounts = textBox1.Text; // 按换行符拆分,得到每一条账户的字符串数组,同时去掉空行 string[] accountLines = allAccounts.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); // 遍历每一条账户记录 foreach (string line in accountLines) { // 用冒号拆分当前行,*最多拆成2部分*(防止密码里也包含冒号的情况) string[] parts = line.Split(new[] { ':' }, 2); if (parts.Length == 2) { // 去掉前后多余空格,避免输入时的失误 string username = parts[0].Trim(); string password = parts[1].Trim(); // 到这里你就可以把username和password当成独立字符串用啦,比如存入列表、验证等 Console.WriteLine($"用户名:{username} | 密码:{password}"); } else { // 处理格式不正确的行,比如没有冒号的情况 Console.WriteLine($"格式错误的行:{line}"); } }
如果是VB.NET的话,代码是这样的
' 获取TextBox的文本内容 Dim allAccounts As String = TextBox1.Text ' 按换行符拆分并移除空行 Dim accountLines() As String = allAccounts.Split({Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries) For Each line As String In accountLines ' 按冒号拆分,*最多拆成2部分* Dim parts() As String = line.Split({":"c}, 2) If parts.Length = 2 Then Dim username As String = parts(0).Trim() Dim password As String = parts(1).Trim() ' 后续使用这两个字符串即可 Console.WriteLine($"用户名:{username} | 密码:{password}") Else Console.WriteLine($"格式错误的行:{line}") End If Next
关键提醒
我特意用了Split方法的第二个参数2,这样就算密码里不小心包含了冒号,也只会把第一个冒号作为分隔符,不会把密码拆碎。另外加Trim()是为了避免用户输入时不小心加了前后空格,导致用户名或密码带多余空白字符,影响后续使用。
如果你的账户不是按行分隔,而是用其他符号(比如分号)分隔,只需要把拆分行的部分换成对应的分隔符就好啦!
内容的提问来源于stack exchange,提问作者MrCoInSanity
相关产品推荐
相关产品推荐

