0

Java (私は C# を使用) で開発するサード パーティ向けの例を作成しようとしていますが、期待どおりに動作しません。私のマシンには Java IDE がないので、Ideone.com を使用してテストしています。

必要条件は、郵便番号の最初のアルファ部分 (1 つまたは 2 つのアルファ文字で始まる可能性があります) を取得して、別のルックアップで使用することです。

だからMK34 8FD私は期待するだろうしMKS4 8BF私は期待するだろうS.

String source = "MK34 8FD";
String working = source.substring(0, 2);
String postcode = "";

for (int i = 0; i < 2; i++) {
    String piece = working.substring(i, 1);
    if (piece.matches("[a-zA-Z]")) {
        postcode += piece;
    }
}

上記のコードでpostcodeは、常に次のように出てきますが、そのM理由はわかりませんか?

4

2 に答える 2

2

の 2 番目の引数substring()は、長さではなく、終了インデックスです。

したがって

String piece = working.substring(i, 1);

に変更する必要があります

String piece = working.substring(i, i + 1);
于 2013-01-04T13:27:38.367 に答える
0
String source = "MK34 8FD";
String postCode = "";
for(int i = 0; i < 2; i++){
    char currentChar = source.charAt(i);
    if(Character.isLetter(currentChar))
        postCode += currentChar;
}
于 2013-01-04T13:32:17.133 に答える