Java 根据字典将字符串大写
我希望根据字典(!)以编程方式将字符串中的单词大写。它应该像在里面一样。给定的是一个全小写的字符串。找到最可能的Java约定大小写 我从一个现有的字典文件和一个类开始,用于检查给定的Java 根据字典将字符串大写,java,string,dictionary,Java,String,Dictionary,我希望根据字典(!)以编程方式将字符串中的单词大写。它应该像在里面一样。给定的是一个全小写的字符串。找到最可能的Java约定大小写 我从一个现有的字典文件和一个类开始,用于检查给定的字符串是否是字典的一部分。困难在于找到正确的或最有可能的。你将如何改进这一点 public String capitalizeWords(String text) { text = text.toLowerCase(); StringBuilder capitalizedWordBuilder = n
字符串是否是字典的一部分。困难在于找到正确的或最有可能的。你将如何改进这一点
public String capitalizeWords(String text)
{
text = text.toLowerCase();
StringBuilder capitalizedWordBuilder = new StringBuilder();
int firstWordLength = text.length();
int beginIndex = 0;
while (true)
{
String subText = text.substring(beginIndex, firstWordLength);
if (contains(subText))
{
String word = capitalizeFirst(subText);
capitalizedWordBuilder.append(word);
beginIndex += word.length();
firstWordLength = text.length() + 1;
}
firstWordLength--;
if (beginIndex == firstWordLength && beginIndex == text.length())
{
String capitalized = capitalizedWordBuilder.toString();
return deCapitalizeFirst(capitalized);
}
}
}
private String capitalizeFirst(String text)
{
if (text.length() < 2)
{
return text;
}
return Character.toUpperCase(text.charAt(0)) + text.substring(1);
}
private String deCapitalizeFirst(String text)
{
if (text.length() < 2)
{
return text;
}
return Character.toLowerCase(text.charAt(0)) + text.substring(1);
}
公共字符串大写字(字符串文本)
{
text=text.toLowerCase();
StringBuilder capitalizedWordBuilder=新StringBuilder();
int firstWordLength=text.length();
int beginIndex=0;
while(true)
{
String subText=text.substring(beginIndex,firstWordLength);
if(包含(潜文本))
{
字符串字=第一个大写(潜文本);
大写的wordbuilder.append(word);
beginIndex+=单词长度();
firstWordLength=text.length()+1;
}
第一字长--;
如果(beginIndex==firstWordLength&&beginIndex==text.length())
{
字符串大写=capitalizedWordBuilder.toString();
返回无资本化首次(大写);
}
}
}
私有字符串首字母大写(字符串文本)
{
if(text.length()<2)
{
返回文本;
}
返回Character.toUpperCase(text.charAt(0))+text.substring(1);
}
私有字符串去首字母(字符串文本)
{
if(text.length()<2)
{
返回文本;
}
返回Character.toLowerCase(text.charAt(0))+text.substring(1);
}
示例运行:
javaisawesome->javaisawesome(好)
ThisisString->ThisisString(坏的)祝你好运。为什么不是这个字符串呢?或者,如果您添加单词I
和his
thisisString
@ElliottFrisch:它没有明确定义,但如果没有留下有效的单词,很明显,到目前为止的解决方案是错误的。。。