java - 选择邮政编码中的前 1 个或 2 个字母字符

标签 java

我正在尝试为使用 Java 开发的第三方创建一个示例(我使用 C#),但这并未按预期工作。我的机器上没有任何 Java IDE,因此我使用 Ideone.com 来测试它。

要求是获取邮政编码的第一个字母部分(可以以 1 或 2 个字母字符开头)以用于单独的查找。

因此,给定MK34 8FD,我期望MK,给定S4 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,我不知道为什么?

最佳答案

substring() 的第二个参数是结束索引,而不是长度。

因此

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

需要更改为

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

关于java - 选择邮政编码中的前 1 个或 2 个字母字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14158057/

相关文章:

java - 设置自己的日期或调用 new Date() 时使用 dateformat 打印日期是不同的

java - 如何将数据从android Activity 发送到java 类?

java - 在 Android 上创建 PKCS10CertificationRequest

java - 将属性从数据库加载到枚举

java - java类中的类?

java - 在外部进程关闭之前,ProcessBuilder 的 InputStream 没有输入

java - 如何以编程方式从自定义视角隐藏默认菜单?

java - TreeMap节点分配后为空

java - java如何识别数组的末尾在哪里?

java - 同级项目中的 Jetty 资源库