Java 将字符串中的第一个字母大写。我做错了什么?
我做错了什么?当我运行我的程序时,它只打印我的一些字符串,并且不大写第一个字母Java 将字符串中的第一个字母大写。我做错了什么?,java,string,methods,char,Java,String,Methods,Char,我做错了什么?当我运行我的程序时,它只打印我的一些字符串,并且不大写第一个字母 public class StringTraining extends ConsoleProgram { public void run() { String str = "halOOlOO"; capitalize(str); } private String capitalize(String str){ String s = "";
public class StringTraining extends ConsoleProgram {
public void run() {
String str = "halOOlOO";
capitalize(str);
}
private String capitalize(String str){
String s = "";
char ch;
for(int i = 0;i<str.length();i++) {
ch = str.charAt(i);
if(i==0 && Character.isLowerCase(ch)) {
Character.toUpperCase(ch);
s += ch;
i++;
} else {
Character.toLowerCase(ch);
s += ch;
i++;
}
}
println(s);
return s;
}
}
公共类StringTraining扩展控制台程序{
公开募捐{
String str=“Haloloo”;
资本化(str);
}
私有字符串大写(字符串str){
字符串s=“”;
char ch;
对于(int i=0;i您需要将变量ch指定给大写或小写值:
for(int i = 0;i<str.length();i++) {
ch = str.charAt(i);
if(i==0 && Character.isLowerCase(ch)) {
ch = Character.toUpperCase(ch);
s += ch;
} else {
ch = Character.toLowerCase(ch);
s += ch;
}
}
for(int i=0;i您需要将变量ch分配给大写或小写值:
for(int i = 0;i<str.length();i++) {
ch = str.charAt(i);
if(i==0 && Character.isLowerCase(ch)) {
ch = Character.toUpperCase(ch);
s += ch;
} else {
ch = Character.toLowerCase(ch);
s += ch;
}
}
for(int i=0;i
您不应该在循环中再次增加i
,因为它将在循环的签名中自动完成
您必须将字符.toUpperCase(ch)
分配给字符串
或附加它
我建议在循环构建字符串对象时使用StringBuilder
校正
private static String capitalize(String str){
StringBuilder s = new StringBuilder();
char ch;
for(int i = 0;i<str.length();i++) {
ch = str.charAt(i);
if(i==0 && Character.isLowerCase(ch)) {
s.append(Character.toUpperCase(ch));
} else {
s.append(Character.toLowerCase(ch));
}
}
return s.toString();
}
您不应该在循环中再次增加i
,因为它将在循环的签名中自动完成
您必须将字符.toUpperCase(ch)
分配给字符串
或附加它
我建议在循环构建字符串对象时使用StringBuilder
校正
private static String capitalize(String str){
StringBuilder s = new StringBuilder();
char ch;
for(int i = 0;i<str.length();i++) {
ch = str.charAt(i);
if(i==0 && Character.isLowerCase(ch)) {
s.append(Character.toUpperCase(ch));
} else {
s.append(Character.toLowerCase(ch));
}
}
return s.toString();
}
返回字符串,您需要将其分配给ch
。
您还需要仅将i
增加一次(在中为,而不是在中如果)返回字符串,您需要将其分配给ch
。
您还需要只增加i
一次(在for
中,而不是在if
中)从大写(字符串)
方法中删除一些不必要的代码,例如i++
,然后使用
s+=String.valueOf(Character.toUpperCase(ch));
code代替
Character.toUpperCase(ch);
s += ch;
完全大写(字符串)方法
private static String capitalize(String str) {
String s = "";
char ch;
for (int i = 0; i < str.length(); i++) {
ch = str.charAt(i);
if (i == 0 && Character.isLowerCase(ch)) {
s += String.valueOf(Character.toUpperCase(ch));
} else {
s += String.valueOf(Character.toLowerCase(ch));
}
}
println(s);
return s;
}
私有静态字符串大写(字符串str){
字符串s=“”;
char ch;
对于(int i=0;i
从大写(字符串)
方法中删除一些不必要的代码,例如i++
并使用
s+=String.valueOf(Character.toUpperCase(ch));
code代替
Character.toUpperCase(ch);
s += ch;
完全大写(字符串)方法
private static String capitalize(String str) {
String s = "";
char ch;
for (int i = 0; i < str.length(); i++) {
ch = str.charAt(i);
if (i == 0 && Character.isLowerCase(ch)) {
s += String.valueOf(Character.toUpperCase(ch));
} else {
s += String.valueOf(Character.toLowerCase(ch));
}
}
println(s);
return s;
}
私有静态字符串大写(字符串str){
字符串s=“”;
char ch;
对于(int i=0;i
像这样更改大写(字符串str)方法-
private static String capitalize(String str) {
char[] chars = str.toCharArray();
String caps = chars[0]+"";
caps = caps.toUpperCase();
String output = caps;
for(int i=1;i<chars.length;i++) {
output = output + chars[i];
}
return output;
}
像这样更改大写(stringstr)方法-
private static String capitalize(String str) {
char[] chars = str.toCharArray();
String caps = chars[0]+"";
caps = caps.toUpperCase();
String output = caps;
for(int i=1;i<chars.length;i++) {
output = output + chars[i];
}
return output;
}
是否仅将第一个字母大写并保持字符串的其余部分相同,还是仅将第一个字母大写?是否仅将第一个字母大写并保持字符串的其余部分相同,还是仅将第一个字母大写?