and*_*wrk 65 c# string parsing
我正在做简单的字符串输入解析,我需要一个字符串标记器.我是C#的新手但已经编写了Java,C#应该有一个字符串标记器似乎很自然.可以?它在哪里?我该如何使用它?
Dav*_*man 115
您可以使用String.Split方法.
class ExampleClass
{
public ExampleClass()
{
string exampleString = "there is a cat";
// Split string on spaces. This will separate all the words in a string
string[] words = exampleString.Split(' ');
foreach (string word in words)
{
Console.WriteLine(word);
// there
// is
// a
// cat
}
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅Sam Allen关于在c#中拆分字符串的文章(Performance,Regex)
dem*_*lem 21
我只想强调C#的Split方法的强大功能,并进行更详细的比较,特别是来自Java背景的人.
虽然Java中的StringTokenizer只允许单个分隔符,但我们实际上可以拆分多个分隔符,使正则表达式不那么必要(尽管如果需要正则表达式,请务必使用正则表达式!)以此为例:
str.Split(new char[] { ' ', '.', '?' })
Run Code Online (Sandbox Code Playgroud)
这会分裂三个不同的分隔符,返回一个标记数组.我们还可以删除空数组,其中包含上述示例的第二个参数:
str.Split(new char[] { ' ', '.', '?' }, StringSplitOptions.RemoveEmptyEntries)
Run Code Online (Sandbox Code Playgroud)
Java的String tokenizer确实有一点我相信C#缺乏(至少Java 7具有此功能)是将分隔符保持为令牌的能力.C#的Split将丢弃令牌.这在一些NLP应用程序中可能很重要,但对于更通用的应用程序,这可能不是问题.
Tim*_*vis 18
字符串的拆分方法就是您所需要的.事实上,Java中的tokenizer类不推荐使用Java的字符串拆分方法.
| 归档时间: |
|
| 查看次数: |
125404 次 |
| 最近记录: |