Java 根据字典将字符串大写

Java 根据字典将字符串大写,java,string,dictionary,Java,String,Dictionary,我希望根据字典(!)以编程方式将字符串中的单词大写。它应该像在里面一样。给定的是一个全小写的字符串。找到最可能的Java约定大小写 我从一个现有的字典文件和一个类开始,用于检查给定的字符串是否是字典的一部分。困难在于找到正确的或最有可能的。你将如何改进这一点 public String capitalizeWords(String text) { text = text.toLowerCase(); StringBuilder capitalizedWordBuilder = n

我希望根据字典(!)以编程方式将字符串中的单词大写。它应该像在里面一样。给定的是一个全小写的字符串。找到最可能的Java约定大小写

我从一个现有的字典文件和一个类开始,用于检查给定的
字符串是否是字典的一部分。困难在于找到正确的或最有可能的。你将如何改进这一点

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:它没有明确定义,但如果没有留下有效的单词,很明显,到目前为止的解决方案是错误的。。。