gpt4 book ai didi

java - 如果匹配 II、III、IV、V、VI、VII、VIII、ESQ、JR、SR,则删除后缀中的最后一个单词

转载 作者:太空宇宙 更新时间:2023-11-04 13:36:27 26 4
gpt4 key购买 nike

我必须做这样的事情:对于名字字段,如果该字段由两个或多个单词组成,如果最后一个单词包含以下之一,则将最后一个单词删除到后缀字段中: II, III, IV, V, VI, VII, VIII, ESQ, JR, SR 。我尝试过使用 java 模式匹配我的代码:`String fName="shaik II .SR ,;

    String suffix=null;
String [] genSuffixFname=fName.split(" ");


if(genSuffixFname.length>=2){
String line=genSuffixFname[genSuffixFname.length-1];
String pattern="( II| III| IV| V| VI| VII| VIII| ESQ|.JR|.SR)";

Pattern r =Pattern.compile(pattern);
Matcher m=r.matcher(line);
//System.out.println(m.find());
if(m.find()){
suffix=genSuffixFname[genSuffixFname.length-1];
}
}`

我的后缀输出为空。需要进行的任何修改或我可以获得此信息的任何其他方式>

最佳答案

如果你想测试给定的字符串是否存在于另一个字符串中,你可以使用 String#contains(anotherString)

或者使用此代码,它会查找给定模式的所有匹配:

String fName = "shaik II .SR IV";
String[] genSuffixFname = fName.split("\\s+");
System.out.println(genSuffixFname.length);

if (genSuffixFname.length >= 2) {
String line = fName;
String pattern = "(II)|(III)|(IV)|(V)|(VI)|"
+ "(VII)|(VIII)|(ESQ)|(.JR)|(.SR)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
while (m.find()) {
System.out.println(m.group());
}
}`

有关 Java 中正则表达式的更多信息:Read here

关于java - 如果匹配 II、III、IV、V、VI、VII、VIII、ESQ、JR、SR,则删除后缀中的最后一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31645953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com