2

完全な単語から文字列の特定の部分を取得したい。

例えば:

次の文字列があります。

# STRING_VALUES #

そして、文は次のとおりです

<p># STRING_VALUE #<br /># CMESSAGE #<br /># CUSTOMERADDRESS #<br /><br /></p>

上記から、次のように文字列を取得したいと思います。

STRING_VALUES
CMESSAGE
CUSTOMERADDRESS

上記の文字列を取得するにはどうすればよいですか? 私はこれで立ち往生しています。

4

7 に答える 7

9

使用split:

String ss ="# STRING_VALUES #";
String[] parts = ss.split("#");
System.out.println(parts[1].trim()); // STRING_VALUES

デモ

于 2012-09-25T11:06:05.927 に答える
3

特定のケースでは、次のコードが機能します。

String str = "# STRING_VALUES #";
String result = str.substring(2,str.length()-2);

更新:(次のコードは、変更された入力文字列に対して機能します)

String str = "<p># STRING_VALUE #<br /># CMESSAGE #<br /># CUSTOMERADDRESS #<br /><br /></p>";

String[] tokens = str.substring(3, str.length()-4).split("<br />");
// tokens will contain [0] = "# STRING_VALUE #"
//                     [1] = "# CMESSAGE #"
//                     [2] = "# CUSTOMERADDRESS #"
//                     [3] = ""

ArrayList<String> results = new ArrayList<String>();

for(String  token : tokens)
{
    if(token.length() != 0)
    {
        results.add(token.substring(2,str.length()-2));
    }
}

// results has required strings
for(String  result : results)
{
    System.out.println(result);
}
于 2012-09-25T11:03:53.390 に答える
0

文字列がこの形式、つまりスペースで区切られている場合は、String.split()を使用できます。

String ss ="# STRING_VALUES #";
    System.out.println(ss.split("\\s")[1]);

上記のコードは、出力としてSTRING_VALUESを返します

于 2012-09-25T11:04:02.420 に答える
0

http://docs.oracle.com/javase/6/docs/api/java/lang/String.htmlを見てください。

彼らはあなたに言うでしょう:

以下に、文字列の使用方法の例をいくつか示します。

     System.out.println("abc");
     String cde = "cde";
     System.out.println("abc" + cde);
     String c = "abc".substring(2,3);
     String d = cde.substring(1, 2);
于 2012-09-25T11:03:22.143 に答える
0

ここString[] split(String regex)に記載されている String クラスのメソッドを使用します。

于 2012-09-25T11:03:32.267 に答える
0

正規表現でそれを行うことができます。クラスPatternおよびMatcherを参照してください。この例で STRING_VALUE 文字列を見つけるための正規表現は次のようになります。

#\s(\w*)\s#

これは、"#" と空白の後、空白と "#" の前に一連の単語文字 (文字、数字、アンダースコア) を返します。単語文字のチェーンは、個別に抽出できるサブマッチとして返されます。

あるいは、String.indexOfを使用して文字列内の区切り記号の位置を検索し、String.substringを使用して見つかった区切り記号の位置の間の部分を抽出することもできます。

于 2012-09-25T11:02:26.600 に答える
0

部分文字列を使用できます:

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#substring(int , int)

または、正規表現を使用することもできます: 2 つのトークンの間の部分文字列を見つけるには正規表現が必要です

于 2012-09-25T11:07:10.097 に答える