0

区切り文字に基づいて文字列をトークン化または分割するのに問題があります。トークン化する必要がある文字列には 2 つのタイプがあります。以下がパターンです。

   a/b/c/d   

   a/b//d

1 つの関数で両方を解析する方法がわかりません。どの文字列が解析されようとしているのかを解析する前に判断できないためです。データは動的であるため。NoSuchElmenet Exception次のトークンがない場合は、次のトークンを検索すると取得されます。どんな助けでも大歓迎です。

4

2 に答える 2

2

{a, b, c, d}トークンまたはを取得したい{a, b, d}ので、StringTokenizer クラスを使用すると非常に簡単です。

この例を見てください:

String exampleA = "a/b/c/d";
StringTokenizer tokens=new StringTokenizer(exampleA , "/");
while(tokens.hasMoreTokens()){
    System.out.println(tokens.nextToken());
}

あなたは得るでしょう:

{a, b, c, d}

そして、2 番目の例では:

String exampleB = "a/b//d";
StringTokenizer tokens=new StringTokenizer(exampleB, "/");
while(tokens.hasMoreTokens()){
    System.out.println(tokens.nextToken());
}

あなたは得るでしょう:

{a, b, d}

これがお役に立てば幸いです。

乾杯!

于 2013-07-03T08:13:23.507 に答える
1

2 つのパターンを分離したい、またはどちらがどちらであるかを判断したいだけの場合は、Java の Pattern クラスを試してください。以下、簡単な解決策

String testString = "a/b/c//d";
String checkfor = ".*//.*";
boolean matches = Pattern.matches(checkfor, testString);

Pattern.matches() は、互いに続く 2 つの「/」の出現を検索し、それぞれを返します (たとえば、「/... /」ではなく「//」)。

幸運を

于 2013-07-03T08:30:55.893 に答える