2017-05-23 7 views
0

文字を中間文字なしで印刷しようとしていますが、必要な出力が得られません。Javaの文字列中の中間文字を削除するには?

public class StringIndexEliminator { 
    public static void main(String[] args) { 
     String str = "CARS"; 
     int l = str.length(); 
     int s = (l+1)/2; 
     System.out.println(l); 
     StringBuffer sb = new StringBuffer(str); 
     System.out.println(sb.deleteCharAt(s).toString()); 
    } 

} 
+1

偶数文字の単語の「中間文字」とは何ですか? – Andremoniy

+0

長さが偶数であるかどうかを確認し、そうでない場合は何もしないでください。 –

+0

コード内のコメントはそれを説明しています –

答えて

2

stringBuffferを(競合条件はありません)を使用する必要はありませんがのStringBuilderを使用して、長さ/ 2

StringBuilder sb = new StringBuilder(str); 
System.out.println(sb.deleteCharAt(str.length()/2)); 
+0

これを使用すると、奇数長に対して必要な出力が得られますが、偶数の場合は文字列をそのまま出力する必要があります。 –

+3

より具体的にする必要があります。偶数の単語に中間の文字はありません!!! –

+1

これは質問に答える、長さの条件を追加するのは簡単です。しかし、 "_remove character_"の部分はここにあります – AxelH

0

で文字を削除するかを確認する必要があります文字列の長さを偶数または奇数にし、その後に必要な文字列を出力します。

これはあなたが望むことを望んでいます。

String str = "CARS"; 
int l = str.length(); 

if((l % 2) == 0){ 
    System.out.println(str); 
}else{ 
    StringBuffer sb = new StringBuffer(str); 
    System.out.println(sb.deleteCharAt((l-1)/2).toString()); 
} 
+0

これまでの回答と比較してどのような改善がありましたか?これは[Software Engineer answer](https://stackoverflow.com/a/44132427/4391450)と同じです。 – AxelH

関連する問題