Java 在“-”(indexOf)之后以大写形式通过
在要做的练习中,我必须更改破折号后面的大写字符 例如->jean-louis成为jean-louis 我知道把第一个字符改成大写,但在破折号之后我就不明白了Java 在“-”(indexOf)之后以大写形式通过,java,Java,在要做的练习中,我必须更改破折号后面的大写字符 例如->jean-louis成为jean-louis 我知道把第一个字符改成大写,但在破折号之后我就不明白了 String name= null; // enter the name String letterSlice = null; // slice the first letter String letterSliceUpper = null; // firs
String name= null; // enter the name
String letterSlice = null; // slice the first letter
String letterSliceUpper = null; // first letter in uppercase
String remainingLetters = null; // remaining letters
int dashIndex = 0; // dash
System.out.print("Enter your name please : ");
name = input.next();
letterSlice = name.substring(0,1);
letterSliceUpper = letterSlice.toUpperCase();
remainingLetters = name.substring(1);
dashIndex = name.indexOf("-");
if(remainingLetters.indexOf("-") != -1 ){
}
System.out.print(letterSliceUpper.concat(remainingLetters));
谢谢你的帮助 我首先构建一个StringBuilder,一个可变的字符集合,将第一个字母大写,然后搜索-字符。将a-后面的每个字符大写。像
我将首先构建一个字符串生成器,它包含可变的字符集合,将第一个字母大写,然后搜索-字符。将a-后面的每个字符大写。像
使用StringBuilder,而不是创建大量高效的StringMemory。请尝试以下内容:
System.out.print("Enter your name please : ");
name = input.next();
StringBuilder result = new StringBuilder(name.length());
String words[] = name.split("-");
for (int i = 0; i < words.length; i++){
result.append(Character.toUpperCase(words[i].charAt(0))).append(words[i].substring(1)).append("-");
}
System.out.println(result);
使用StringBuilder,而不是创建大量高效的StringMemory。请尝试以下内容:
System.out.print("Enter your name please : ");
name = input.next();
StringBuilder result = new StringBuilder(name.length());
String words[] = name.split("-");
for (int i = 0; i < words.length; i++){
result.append(Character.toUpperCase(words[i].charAt(0))).append(words[i].substring(1)).append("-");
}
System.out.println(result);
您需要保留索引-以替换以下字符,例如
int indexOfDash = name.indexOf('-');
除此之外,我将把字符串转换成一个字符数组。这更容易操作。差不多
char[] charArray = name.toCharArray();
charArray[0] = Character.toUpperCase(charArray[0]);
if (indexOfDash != -1) {
charArray[indexOfDash + 1] = Character.toUpperCase(charArray[indexOfDash + 1]);
}
String newName = String.valueOf(charArray);
System.out.println(newName);
您需要保留索引-以替换以下字符,例如
int indexOfDash = name.indexOf('-');
除此之外,我将把字符串转换成一个字符数组。这更容易操作。差不多
char[] charArray = name.toCharArray();
charArray[0] = Character.toUpperCase(charArray[0]);
if (indexOfDash != -1) {
charArray[indexOfDash + 1] = Character.toUpperCase(charArray[indexOfDash + 1]);
}
String newName = String.valueOf(charArray);
System.out.println(newName);
下面是另一个使用RegEx的解决方案
String str = "jean-louis-patrice";
Pattern pattern = Pattern.compile("(^.|-.)");
Matcher matcher = pattern.matcher(str);
StringBuffer result = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(result, matcher.group().toUpperCase());
}
matcher.appendTail(result);
System.out.println(result.toString());
下面是另一个使用RegEx的解决方案
String str = "jean-louis-patrice";
Pattern pattern = Pattern.compile("(^.|-.)");
Matcher matcher = pattern.matcher(str);
StringBuffer result = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(result, matcher.group().toUpperCase());
}
matcher.appendTail(result);
System.out.println(result.toString());
jean不在破折号之后…dashIndex设置为第一个破折号的位置,如果没有破折号,则设置为-1。在破折号后添加一个字符索引。jean不在破折号后…破折号索引设置为第一个破折号的位置,如果没有破折号,则设置为-1。在破折号后添加一个字符索引。