2

入力を受け取る関数を作成しようとしています。最初の文字が「[」、最後の文字が「]」であるかどうかを確認し、含まれている場合は削除します。文字列にはさらに括弧が含まれている可能性があります。その場合は、エラー ステートメントを出力する必要があります。どこを見ても、2 つの括弧だけでこれを行う方法の例を見てきましたが、他にもあるかどうかを確認する必要があり、混乱しています。

の使用例を見てきましregexたが、外側に 2 つの角かっこしかない文字列を見つけることができれば、 を使用substringしてそれをトリミングできることはわかっていますが、文字列のインスタンスをチェックする方法がわかりません。それらのすべてを削除せずにブラケット。

助けていただければ幸いです。ありがとう。

4

3 に答える 3

5
if(str.chatAt(0) == '[' && str.charAt(str.length()-1) == ']') //str.matches("\\[.*\\]")
{
    str = str.substring(1, str.length() - 1);
}
if(str.contains("[") || str.contains("]")) //str.matches(".*[\\[\\]].*")
{
    //throw your error
}

if ステートメントの横に潜在的な正規表現ソリューションを投稿しました。警告: 正規表現は得意ではないため、正しくない可能性があります。

@Ingo がコメントで指摘したように、str.charAt(0)空の文字列では失敗します。

于 2013-10-08T20:45:34.893 に答える
0

String.charAt(int) を使用して実行できます: http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#charAt%28int%29

于 2013-10-08T20:45:10.893 に答える
0

先頭と末尾のブラケットをトリムするために何をしているのかを知っていると主張しているため、欠落しているリンクはクラスの.contains()メソッドであるように聞こえます。String

if (myString.contains("]") || myString.contains("["))
    throw new Exception("myString contains invalid brackets");
于 2013-10-08T20:45:52.297 に答える