gpt4 book ai didi

Java字符串大小写及错误修复

转载 作者:行者123 更新时间:2023-11-30 02:56:34 25 4
gpt4 key购买 nike

我想检查我的字符串是否存在大写错误。(有 16.000+ 行)并且有些行存在大写错误。如果字符后面有特殊字符(?、!、. 等)以小写字母开头或单词有一些大写字符。 (字符串包含土耳其字符)

目标字符串;

iki oRDu Eskihisar'da karşılaştı ve Orhan Gazi, Bizanslıları denize dÖkErek büyük bir zafer kazandı. osmanlılar 1331'de İznik'i, 1337'de İzmit'i topraklarına kattı! izmit'in fethedilmesiyle Bizans'ın Anadolu'daki varlığı Son buldu.

我想要这个;

İki ordu Eskihisar'da karşılaştı ve Orhan Gazi, Bizanslıları denize dökerek büyük bir zafer kazandı. Osmanlılar 1331'de İznik'i, 1337'de İzmit'i topraklarına kattı! İzmit'in fethedilmesiyle Bizans'ın Anadolu'daki varlığı son buldu.

当我使用StringUtils.capitalize(org.apache library)时,土耳其语字符不起作用...

我可以用java来做这个吗?

最佳答案

StringUtils.capitalize 不适合您,因为如果单词中间有大写字母,它将保留大写字母,这显然不是您想要的。

以下是它的实现方式:

int length = value.length();
StringBuilder buffer = new StringBuilder(length);
boolean sentence = false;
boolean space = false;
for (int i = 0; i < length; i++) {
char c = value.charAt(i);
switch (c) {
case ',' :
case '.' :
case '?' :
case '!' :
sentence = false;
space = false;
buffer.append(c);
break;
case ' ' :
if (!space) {
space = true;
buffer.append(c);
}
break;
case '\t' :
space = false;
buffer.append(c);
break;
default:
if (sentence) {
buffer.append(Character.toLowerCase(c));
} else {
buffer.append(Character.toUpperCase(c));
}
sentence = true;
space = false;
}
}
System.out.println(buffer);

输出:

Iki ordu eskihisar'da karşılaştı ve orhan gazi, Bizanslıları denize dökerek büyük bir zafer 
kazandı. Osmanlılar 1331'de iznik'i, 1337'de izmit'i topraklarına
kattı! Izmit'in fethedilmesiyle bizans'ın anadolu'daki varlığı son
buldu. Topraklarına Kattı! Izmit'in Fethedilmesiyle Bizans'ın
Anadolu'daki Varlığı Son Buldu.

关于Java字符串大小写及错误修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37089769/

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