Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java8从字符串中提取子字符串?_Java_Java 8_Functional Programming - Fatal编程技术网

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

如何使用Java8从字符串中提取子字符串?,java,java-8,functional-programming,Java,Java 8,Functional Programming,我有一个9位字符串,其中包括以下详细信息: 前3位代表城市代码,中间3位代表银行代码,最后3位代表分行代码 我想使用Java8或函数式编程从整个字符串中提取这3个,以便随时可以更改实现 我使用了旧的基本结构,使用String.substring(start,end)逐个获取git 如何在Java8中获得这些 提前感谢 您不需要Java8特性来实现这一目的 然而,与3种静态方法不同,我将利用Java作为面向对象语言的优势。我将定义一个BankAccount类(或类似的类),它有3个实例变量-cit

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

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

我使用了旧的基本结构,使用
String.substring(start,end)逐个获取git

如何在Java8中获得这些


提前感谢

您不需要Java8特性来实现这一目的

然而,与3种静态方法不同,我将利用Java作为面向对象语言的优势。我将定义一个
BankAccount
类(或类似的类),它有3个实例变量-
city
bank
branch

该类的构造函数将接受
字符串
参数,对其进行解析(使用
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;}

}

你甚至可以考虑将<代码>城市<代码>、<代码>银行<代码>和<代码>分支>代码>代码> INT/<代码> S.< /P> < P>你不需要java 8特性来实现这个目的。 然而,与3种静态方法不同,我将利用Java作为面向对象语言的优势。我将定义一个

BankAccount
类(或类似的类),它有3个实例变量-
city
bank
branch

该类的构造函数将接受
字符串
参数,对其进行解析(使用
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;}

}

您甚至可以考虑将<代码>城市<代码>、<代码>银行>代码>和代码>分支<代码>代码>代码> int >代码> S.< /P> < P> >在子字符串中java 8没有附加的特性。您的实现应该可以正常工作。

java 8中没有关于子字符串的附加功能。您的实现应该可以很好地工作。

。子字符串(…)
仍然可以很好地工作。您的实现方式似乎很好(出于您有限的目的),并且没有专门的函数式编程或Java 8子字符串。您还可以考虑使用正则表达式来实现更大的灵活性。对于简单的情况,您也可以使用String#split。@LutzHorn是的,它工作得很好,但我想减少行数。有什么方法可以做到这一点吗?
String[]codes=codeString.split((?
.substring(…)
仍然可以正常工作。您现在的方法似乎很好(出于您有限的目的)没有专门的函数式编程或Java 8方法来做子字符串。你也可以考虑使用正则表达式来提高这类事情的灵活性。你也可以在简单的情况下使用字符串#split。@LutzHorn是的,它工作得很好,但我想减少行数。有什么方法可以做到这一点吗?
String[]codes=codeString.split((?)?