Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在“-”(indexOf)之后以大写形式通过_Java - Fatal编程技术网

Java 在“-”(indexOf)之后以大写形式通过

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

在要做的练习中,我必须更改破折号后面的大写字符

例如->jean-louis成为jean-louis

我知道把第一个字符改成大写,但在破折号之后我就不明白了

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。在破折号后添加一个字符索引。