我正在努力理解使用Split方法接收我想要的文本我从用户接收长注册字符串,我试图通过冒号分割它,:并为每个冒号发现我想得到所有文本,直到/n在行
我从用户收到的字符串格式如下:
"Username: Jony \n
Fname: Dep\n
Address: Los Angeles\n
Age: 28\n
Date: 11/01:2001\n"
Run Code Online (Sandbox Code Playgroud)
这是我的approche,直到现在并没有说明它是如何工作的,并没有找到问题similler像我的问题
str = the long string
List<string> names = str.ToString().Split(':').ToList<string>();
names.Reverse();
var result = names[0].ToString();
var result1 = names[1].ToString();
Console.WriteLine(result.Remove('\n').Replace(" ",string.Empty));
Console.WriteLine(result1.Remove('\n').Replace(" ",string.Empty));
Run Code Online (Sandbox Code Playgroud)
----------------------------------------------------------------------------
Mode : Release (64Bit)
Test Framework : .NET Framework 4.7.1 (CLR 4.0.30319.42000)
----------------------------------------------------------------------------
Operating System : Microsoft Windows 10 Pro
Version : 10.0.17134
----------------------------------------------------------------------------
CPU Name : Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz
Description : Intel64 Family 6 Model 58 Stepping 9
Cores (Threads) : 4 (8) : Architecture : x64
Clock Speed : 3901 MHz : Bus Speed : 100 MHz
L2Cache : 1 MB : L3Cache : 8 MB
----------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
结果
--- Random characters -------------------------------------------------
| Value | Average | Fastest | Cycles | Garbage | Test | Gain |
--- Scale 1 -------------------------------------------- Time 1.152 ---
| split | 4.975 µs | 4.091 µs | 20.486 K | 0.000 B | N/A | 71.62 % |
| regex | 17.530 µs | 14.029 µs | 65.707 K | 0.000 B | N/A | 0.00 % |
-----------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
你可以使用正则表达式,或者你可以简单地使用 Split
var input = "Username: Jony\n Fname: Dep\nAddress: Los Angeles\nAge: 28\nDate: 11/01:2001\n";
var results = input.Split(new []{'\n'}, StringSplitOptions.RemoveEmptyEntries)
.Select(x => x.Split(':')[1].Trim());
foreach (var result in results)
Console.WriteLine(result);
Run Code Online (Sandbox Code Playgroud)
产量
Jony
Dep
Los Angeles
28
11/01
Run Code Online (Sandbox Code Playgroud)
注意:这没有错误检查,因此如果您的字符串不包含冒号,它将会中断
其他资源
返回一个字符串数组,该数组包含此实例中由指定字符串或Unicode字符arr的元素分隔的子字符串
指定适用的Split方法重载是否包含或省略返回值中的空子串
返回一个新字符串,其中删除当前String对象中一组指定字符的所有前导和尾随出现.
将序列的每个元素投影到新表单中.
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |