Java 如果大写字母是完全大写的话,如何在保留大写字母的同时将第一个字母大写,其余字母小写
返回句子大小写中当前文本的字符串表示形式。判决案例是最重要的 在句子中使用大写字母或仅大写第一个字母的传统方式 单词和任何专有名词。此外,所有大写字母都应保持原样 对于本作业,名词仅限于开头有一个大写字母的单词。 **例如字符串“第一句。第二句。第三句” 其输出为(第一句、第二句、第三句)**Java 如果大写字母是完全大写的话,如何在保留大写字母的同时将第一个字母大写,其余字母小写,java,string,split,uppercase,text-parsing,Java,String,Split,Uppercase,Text Parsing,返回句子大小写中当前文本的字符串表示形式。判决案例是最重要的 在句子中使用大写字母或仅大写第一个字母的传统方式 单词和任何专有名词。此外,所有大写字母都应保持原样 对于本作业,名词仅限于开头有一个大写字母的单词。 **例如字符串“第一句。第二句。第三句” 其输出为(第一句、第二句、第三句)** 这是我上述作业的代码。我可以将每个点后的第一个字母大写,将其余的字母设置为小写,但我不知道如何保持大写字母的原样 下面是我的代码: getSentenceCaseText() 公共字符串getSent
这是我上述作业的代码。我可以将每个点后的第一个字母大写,将其余的字母设置为小写,但我不知道如何保持大写字母的原样 下面是我的代码:
getSentenceCaseText()
公共字符串getSentenceCaseText(字符串文本){
int pos=0;
布尔大写=真;
StringBuilder sb=新的StringBuilder(文本);
while(pos
您应该有一个布尔值-isCapitalize
起初,这是真的
在迭代文本的过程中,您应该使用相同的单词创建新的操纵文本
如果isCapitalize
标志为true,则以第一个大写字母的方式书写单词。否则,请用小写大写字母书写。如果整个单词都有大写字母(这就是我们重复单词的原因)-请用大写字母对整个单词
如果您有“”,则该标志仅对1个单词启用
现在,将上面的文本转化为代码。
如果您需要帮助,请告诉我们。您应该有一个布尔值-
isCapitalize
起初,这是真的
在迭代文本的过程中,您应该使用相同的单词创建新的操纵文本
如果isCapitalize
标志为true,则以第一个大写字母的方式书写单词。否则,请用小写大写字母书写。如果整个单词都有大写字母(这就是我们重复单词的原因)-请用大写字母对整个单词
如果您有“”,则该标志仅对1个单词启用
现在,将上面的文本转化为代码。
如果您需要帮助,请告诉我们。您发布的大多数逻辑都可以正常工作。问题是像“句子”这样的词,因为你用来检查大写的逻辑是不正确的 最大的问题是,您试图迭代这些单词,同时检查该字符串是否大写 最简单的方法是分离关注点;事先检查单词是否大写,并采取相应措施 首先创建一个只检查单词是否大写的方法。例如:
public String getSentenceCaseText(String text) {
int pos = 0;
boolean capitalize = true;
StringBuilder sb = new StringBuilder(text);
while (pos < sb.length()){
sb.setCharAt(pos, Character.toLowerCase(sb.charAt(pos)));
if (sb.charAt(pos) == '.') {
capitalize = true;
} else if (capitalize && !Character.isWhitespace(sb.charAt(pos))) {
sb.setCharAt(pos, Character.toUpperCase(sb.charAt(pos)));
capitalize = false;
}
pos++;
}
return sb.toString();
}
如果为大写,则该方法应跳过此单词并移动到下一个单词。否则,它会将第一个字符大写,并降低剩余的字符。对文本中的所有单词应用相同的逻辑
代码可能如下所示:
boolean capitalize = isUpper(text, pos);
公共静态字符串getSentenceCaseText(字符串文本){
int pos=0;
StringBuilder sb=新的StringBuilder(文本);
//迭代字符串
while(pos
使用此策略和此代码作为指导,在此基础上构建并实现您自己的方法。您发布的大多数逻辑都可以正常工作。问题是像“句子”这样的词,因为你用来检查大写的逻辑是不正确的 最大的问题是,您试图迭代这些单词,同时检查该字符串是否大写 最简单的方法是分离关注点;事先检查单词是否大写,并采取相应措施 首先创建一个只检查单词是否大写的方法。例如:
public String getSentenceCaseText(String text) {
int pos = 0;
boolean capitalize = true;
StringBuilder sb = new StringBuilder(text);
while (pos < sb.length()){
sb.setCharAt(pos, Character.toLowerCase(sb.charAt(pos)));
if (sb.charAt(pos) == '.') {
capitalize = true;
} else if (capitalize && !Character.isWhitespace(sb.charAt(pos))) {
sb.setCharAt(pos, Character.toUpperCase(sb.charAt(pos)));
capitalize = false;
}
pos++;
}
return sb.toString();
}
如果为大写,则该方法应跳过此单词并移动到下一个单词。否则,它会将第一个字符大写,并降低剩余的字符。对文本中的所有单词应用相同的逻辑
代码可能如下所示:
boolean capitalize = isUpper(text, pos);
公共静态字符串getSentenceCaseText(字符串文本){
int pos=0;
StringBuilder sb=新的StringBuilder(文本);
//迭代字符串
while(posO! HI!First sentence. Second sentence. Third: SENTENCE. Am I OK?! Yes, I am fine!!