如何使用Java 8从字符串中提取子字符串?

Atu*_*Rai 1 java functional-programming java-8

我有一个9位数字的字符串,其中包括以下详细信息:前3位数字代表城市代码,中间3位是银行代码,最后3位是分支代码。

我想使用Java 8或函数式编程从整个字符串中提取这3个,以便随时可以更改实现。

我已经使用了旧的基本结构,使用 String.substring(start,end);


    public static void main(String[] args) {

        String city = getCityCode("302105202");

        System.out.println("City-" + city);

        String bank = getBankCode("302105202");

        System.out.println("bank-" + bank);

        String branch = getBranchCode("302105202");

        System.out.println("branch-" + branch);

    }

    public static String getCityCode(String micr) {
        return micr.substring(0, 3);
    }

    public static String getBankCode(String micr) {
        return micr.substring(3, 6);
    }

    public static String getBranchCode(String micr) {
        return micr.substring(6, 9);
    }

}

Run Code Online (Sandbox Code Playgroud)

如何在Java 8中获得这些?

提前致谢;

Era*_*ran 5

为此,您不需要Java 8功能。

但是,static我将使用Java作为一种面向对象的语言,而不是3 种方法。我定义了一个BankAccount具有3个实例变量类(或类似的东西) - citybankbranch

该类的构造函数将接受String参数,对其进行解析(使用substring(),就像您当前所做的那样),然后将值分配给3个实例变量。

public class BankAccount 
{
    private String city;
    private String bank;
    private String branch;

    public BankAccount (String acctStr) 
    {
        this.city = acctStr.substring(0,3);
        this.bank = acctStr.substring(3,6);
        this.branch = acctStr.substring(6,9);
    }

    public String getCity () {return city;}
    public String getBank () {return bank;}
    public String getBranch () {return branch;}

}
Run Code Online (Sandbox Code Playgroud)

你甚至可以考虑转换citybankbranch代码转换成int秒。