2011-03-01 25 views
1

'、'で区切られ、 '。'で終わるサブリングを取得する最適な方法はありますか?この方法よりも?部分文字列を取得する最適な方法は?

if (paramsText != null) 
    { 
     while (paramsText.contains(",")) 
     { 
      params.add(paramsText.substring(0, paramsText.indexOf(","))); 
      paramsText = paramsText.substring(
        paramsText.indexOf(",") + 1, paramsText.length()); 
     } 

     params.add(paramsText); 
    } 
+1

あなたは '持たない'あなたに "を。"コード。 – aioobe

答えて

2

:あなたはこれを行うことができます

String str = "There is, a more optimal, way to obtain. subtrings which," 
      + "are separated by, and ended by. than this way."; 

String[] substrings = str.split("\\s*[.,]\\s*"); 
for (String substr : substrings) 
    System.out.println("\"" + substr + "\""); 

出力:

"There is" 
"a more optimal" 
"way to obtain" 
"subtrings which" 
"are separated by" 
"and ended by" 
"than this way" 
+0

'String [] substrings = str.split(" \\ s * [。、] \\ s * ");を実行した後。 'サブストリングをリストとして持っていなければならないので、配列全体を循環させる必要があります。結果は元のコードよりも最適ですか?ところで、私はこの機能がスペイン語から英語に翻訳されるか、または逆の場合にウェブページの内容を翻訳するので、これを尋ねています。 – camiloqp

+0

配列へのリストインターフェイスが必要な場合は、 'Arrays.asList(substrings)'しかし、ボトルネックになることが判明しない限り、コードのこの小さなスニペットであまりにも多くのパフォーマンスを心配することはありません...私はあなたが翻訳者にプッシュすることを目指しているなら、ボトルネックはどこか他の場所にあると確信しています。 – aioobe

+0

ありがとう、これは少なくとも少しパフォーマンスを向上させる必要があります;) – camiloqp

3

実際には「。」を確認していないので、このようなものは、あなたに合うだろう多分

String[] params = paramsText.split(","); 
+0

しかし、後で関数を呼び出す必要があります。リストとしてparamsを呼び出す必要があります。同等のリストを取得するには、配列を循環させる必要がありますか? – camiloqp

+2

@camiloqpリスト l = Arrays.asList(<あなたの配列はここ>); – Erik

関連する問題