gpt4 book ai didi

java - 如何提取子串并获取前一个字符

转载 作者:行者123 更新时间:2023-12-01 22:26:14 24 4
gpt4 key购买 nike

我对 java 还很陌生,我搜索用另一个字符串替换字符串的一部分,除非该字符串的前一个字符是 C、V、M、G 或 W。即如果我得到 BILLE 作为输入,我希望输出给我 B.Y.E 但如果我得到 MILLE 作为输入,我想要 MILLE 作为输出。

这是我尝试过的:

import java.util.HashMap;
import java.util.Map;



public class Phaille {
static Map<String, String> phaille2 = new HashMap<String, String>();
static {
phaille2.put("ILL", ".Y.");
}

public static String phaille1(final String tampon){
int position= tampon.indexOf("ILL");
String sub=tampon.substring(position,tampon.length());


if (position != -1 ){
if(!(sub.endsWith("C"))){
return phaille2.get(tampon);
}

}
return tampon;
}
}

但是当我使用 "CYRILLE""CECILLE""ILL""CILLILLILL" 进行测试时>,测试给了我

org.junit.ComparisonFailure: expected:<null> but was:<"CYR.Y.E">.

最佳答案

试试这个代码:

public static void main(String[] args) {
String s1 = "BILLE";
String s2 = "MILLE";
String pattern = "(?<![WCVMG])ILL";
System.out.println(s1.replaceAll(pattern, ".Y."));
System.out.println(s2.replaceAll(pattern, ".Y."));
System.out.println("CYRILLE".replaceAll(pattern, ".Y."));
System.out.println("CILLILLILL".replaceAll(pattern, ".Y."));
}

操作:

B.Y.E
MILLE
CYR.Y.E
CILL.Y..Y.

关于java - 如何提取子串并获取前一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28739553/

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