Java CodeBat 演習を行っています。これが私が立ち往生しているものです:
文字列で「zip」や「zap」などのパターンを探します -- 長さ 3 で、「z」で始まり「p」で終わります。そのようなすべての単語の真ん中の文字がなくなった文字列を返します。したがって、「zipXzap」は「zpXzp」になります。
これが私のコードです:
public String zipZap(String str){
String s = ""; //Initialising return string
String diff = " " + str + " "; //Ensuring no out of bounds exceptions occur
for (int i = 1; i < diff.length()-1; i++) {
if (diff.charAt(i-1) != 'z' &&
diff.charAt(i+1) != 'p') {
s += diff.charAt(i);
}
}
return s;
}
これは、それらのいくつかでは成功しますが、他の人では成功しません。一部のサンプル文字列では、&&
演算子が のように動作しているようです。||
つまり、保持したい文字の多くが保持されていません。どうやって修正するのかわかりません。
よろしければ、正しい方向に微調整してください。ヒントが欲しい!