gpt4 book ai didi

java - java中连续大写字母的连字符

转载 作者:行者123 更新时间:2023-12-01 13:40:17 24 4
gpt4 key购买 nike

我想用连续出现的大写字母连接 token 。
例如:

Mr. Harry Potter going to school

那么输出应该是:

Mr. Harry-Potter going to school.

它需要连续地对所有以大写字母开头的标记进行分块。除了以下正则表达式模式

像其他太阳中央政府的例子一样,它应该是太阳中央政府。

我的代码是:

public class Capitalize {

static String str="mr. Harry Potter is going to school";
StringBuffer regex = new StringBuffer("Eco[\\.]|Gr[\\.]|Emp[\\.]|Rs[\\.]|Ms[\\.]|No[\\.]|Nos[\\.]|Dt[\\.]|Sh[\\.]|Mr[\\.]|Mrs[\\.]|Admn[\\.]|Ad[\\.]|Smt[\\.]|GOVT[\\.]|Govt[\\.]|Deptt[\\.]|Tel[\\.]|Secy[\\.]|Estt[\\.]|Asstt[\\.]|Hqrs[\\.]|DY[\\.]|Supdt[\\.]|w[\\.]e[\\.]f[\\.]|&I[\\.]|N[\\.]|[0-9]+[\\.][0-9]+[\\.]");
StringBuffer sb=new StringBuffer();
public void show()
{
StringTokenizer strtkn=new StringTokenizer(str);
while (strtkn.hasMoreTokens()) {

String str1=strtkn.nextToken();

if(Character.isUpperCase(str1.charAt(0)))
{
sb.append(str1+"-");

}
sb.append(str1+" ");
System.out.println(sb.toString());
}

System.out.println("Final :" +sb.toString());
}

它给出了这个输出

Final :mr. Harry-Harry Potter-Potter is going to school 
but i want this output
mr. Harry-Potter is going to school

而且我想忽略:

 StringBuffer regex = new StringBuffer("Eco[\\.]|Gr[\\.]|Emp[\\.]|Rs[\\.]|Ms[\\.]|No[\\.]|Nos[\\.]|Dt[\\.]|Sh[\\.]|Mr[\\.]|Mrs[\\.]|Admn[\\.]|Ad[\\.]...... values if they come into string.

请为我的问题提出一些解决方案。

最佳答案

这是一个简单的单行解决方案:

str = str.replaceAll("(\\b[A-Z][a-z]+) (?=[A-Z][a-z]+)", "$1-");

关于java - java中连续大写字母的连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20869779/

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