次のプログラムの目的は、区切り文字 " "
と":"
のおかげでソース文字列を区切ることです。予想される出力は20 03 2016 17 30
ですが、最後の要素は省略して20 03 2016 17
になります。たぶんオフに1つのエラー?Javaの文字列区切りプログラムで1つずつエラーが発生する
public static void main(String[] args) {
String source = "20/03/2016:17:30";
String sep = "/:";
String[] result = new String[5];
String str = "";
int index = 0;
for (int sourcePos = 0; sourcePos < source.length(); sourcePos++) {
int compt = 0;
for (int sepPos = 0; sepPos < sep.length(); sepPos++) {
if (source.charAt(sourcePos) == sep.charAt(sepPos)) compt++;
}
if (compt > 0) {
result[index] = str;
System.out.print(" " + result[index]);
if (index < result.length)
index++;
else
break;
str = "";
} else {
str = str + source.charAt(sourcePos);
}
}
}
off-by-oneエラーの説明に感謝します:) – loukios
このコメントを少し遅く追加して申し訳ありませんが、あなたのコードに別の種類のオフラインエラーがあります。出力は "20/「20 03 2016 17 30」の代わりに「03/2016:16」と表示されます。どんな考え? – loukios