質問

になっている単純な文字列の入力を解析いわさきでん-さどおにけんばい必要とする文字列トークナイザ.これまでC#がJavaプログラムは、そのC#るべき文字列トークナイザ.なのですか?できます。使い方を教えてくださいね。

役に立ちましたか?

解決

を使用できる 文字列になります。分割方法.

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
        }
    }
}

詳しい情報は見 Sam Allenの条約に分割文字列をクライアントまで、フルのc# (性能、Regex)

他のヒント

ていただきたいと思い、電源のC#'sの分割方法、より詳細な比較検討を行いながら、特に人からJavaます。

はStringTokenizer Javaのみで単一の区切り文字までを実際に分割複数の区切り文字を作が正規表現以下の必要がまのニーズを正規表現を使用regex!) たとえばこの

str.Split(new char[] { ' ', '.', '?' })

この分割に異なる三つの区切り文字を返す配列の一枚配布します。また取り外しも可能で空の配列とい第二のパラメータの例

str.Split(new char[] { ' ', '.', '?' }, StringSplitOptions.RemoveEmptyEntries)

ひとつはJavaの文字列トークナイザはいると思っていC#では足りない(少なくともJava7にはこの機能につける能力の区切り文字("s")トークンとして.C#'s割を破棄してしまいますのトークンこの重要かNLP用途があり、一般的な用途このことは問題にならないはずである。

の分割法の文字列で作られています。このトークナイザはJavaのクラスは推奨されていませんのJavaの文字列分割法"である。

と思い、最寄りできます。NETフレームワークが

string.Split()

複雑な分割する正規表現をマッチ。

_words = new List<string>(YourText.ToLower().Trim('\n', '\r').Split(' ').
            Select(x => new string(x.Where(Char.IsLetter).ToArray()))); 

または

_words = new List<string>(YourText.Trim('\n', '\r').Split(' ').
            Select(x => new string(x.Where(Char.IsLetterOrDigit).ToArray()))); 

使用 Regex.Split(string,"#|#");

この分割機能には負荷がかかり、配列のseperators http://msdn.microsoft.com/en-us/library/system.stringsplitoptions.aspx

の似たJavaの方法です:

Regex.Split(string, pattern);

場所

  • string -テキストに必要なものに分割
  • pattern 文字列タイプのパターンは、何が分割されたテキスト

ねば次のように分割コマンドライン引数。純コンソールアプリにおいて問題にすることから始まります。純が壊れてしまったりしたいなということが記載されていない).私が割引数は空白文字を保存意のリテラルを引用したような分割したいです。このコードに書いたい:

private static List<String> Tokenise(string value, char seperator)
{
    List<string> result = new List<string>();
    value = value.Replace("  ", " ").Replace("  ", " ").Trim();
    StringBuilder sb = new StringBuilder();
    bool insideQuote = false;
    foreach(char c in value.ToCharArray())
    {
        if(c == '"')
        {
            insideQuote = !insideQuote;
        }
        if((c == seperator) && !insideQuote)
        {
            if (sb.ToString().Trim().Length > 0)
            {
                result.Add(sb.ToString().Trim());
                sb.Clear();
            }
        }
        else
        {
            sb.Append(c);
        }
    }
    if (sb.ToString().Trim().Length > 0)
    {
        result.Add(sb.ToString().Trim());
    }

    return result;
}

ご利用の場合はC#3.5きく拡張方法。文字列の分割ます。それでその後の使用の構文:

string.SplitByMyTokens();

詳細情報および有用な例からMSはこちら http://msdn.microsoft.com/en-us/library/bb383977.aspx

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top