Javaでは、文字列内の先頭と末尾の括弧を取り除きたいと思います。入力が与えられ
:文字列内の先頭と末尾の括弧を削除します。
"[ hello, char[]={a,b,c} ... bye ]"
私は
" hello, char[]={a,b,c} ... bye "
の出力のみ[
先頭と末尾の]
を生成することができますどのように私はJavaでそれを行うことができますどのように...削除されますか?
Javaでは、文字列内の先頭と末尾の括弧を取り除きたいと思います。入力が与えられ
:文字列内の先頭と末尾の括弧を削除します。
"[ hello, char[]={a,b,c} ... bye ]"
私は
" hello, char[]={a,b,c} ... bye "
の出力のみ[
先頭と末尾の]
を生成することができますどのように私はJavaでそれを行うことができますどのように...削除されますか?
String i = "[ hello, char[]={a,b,c} ... bye ]";
int indexOfOpenBracket = i.indexOf("[");
int indexOfLastBracket = i.lastIndexOf("]");
System.out.println(i.substring(indexOfOpenBracket+1, indexOfLastBracket));
プリント:
hello, char[]={a,b,c} ... bye
String a = "[ hello, char[]={a,b,c} ... bye ] ";
a.substring(1,23);
System.out.println(a);
ここで私は読んでいない。
String.substring()方法を見てみましょう:
System.out.println(input.substring(1, input.length()))
彼は文字列の正確な長さを知っているようだから、1から23までと言うことができ、それを部分文字列で表すことができます。 –
はい、しかし...原則として、文字列の長さは決してわかりません。あなたが知っているもの(文字列の先頭がどこにあるか)を使用し、Javaが残りの部分(文字列の終わりがどこにあるか)を報告するようにする方が良いでしょう。 – Makoto
public class Test{
public static void main(String[] args){
String test = "[ abc ]";
System.out.println(test.substring(1,test.length()-1));
// Outputs " abc "
}
}
括弧でくくられていることがわかっているのなら、これはかなりシンプルです – Identity1
Infactは、
をこの部分文字列のオーバーロード(startIndex、endIndex);
input.substring(input.indexOf("[")+1,input.lastIndexOf("]"));
あなたが最初と末尾のスペースを削除したい場合にも、使用することは、(トリム)。主要および/または空白文字を末尾有する場合に
String s = "[ hello, char[]={a,b,c} ... bye ]";
s = s.replaceAll("^\\[|\\]$", "");
:
String s = " [ hello, char[]={a,b,c} ... bye ] ";
s = s.trim().replaceAll("^\\[|\\]$", "");
非常に参考になります。どうして2つのエスケープ文字(/)を使用したのですか? –
@SashiKantは、文字の前に\\を2つ入れると、そのエスケープモードのみを認識します –
意図したものではないインナーブラケットに代わります。 – Makoto