我想在空格后立即访问字符并将其转换为 Capital。我知道大写和删除空格,但无法在空格后访问字符。
我想将:转换"File to be uploaded"
为"FileToBeUploaded"
.
我想在空格后立即访问字符并将其转换为 Capital。我知道大写和删除空格,但无法在空格后访问字符。
我想将:转换"File to be uploaded"
为"FileToBeUploaded"
.
没有正则表达式
首先要做的就是分开" "
..
String[] tokens = string.split(" ");
然后下一步是循环遍历每个标记,并抓住第一个字母。
for(int x = 0; x < tokens.length; x++)
{
String token = tokens[x];
String firstLetter = String.valueOf(tokens[x].charAt(0));
// After you have first letter, it's just a case of moving to upper case..
firstLetter = firstLetter.toUpperCase();
tokens[x] = firstLetter + tokens[x].substring(1, tokens[x].length());
}
注意:我没有使用foreach
循环,因为 aforeach
只会读取。
最后,把它们粘在一起。您可以在同一个循环中执行此操作。如果不想改变数组本身,可以foreach
在这个上下文中使用a,这样会更好看;如下:
StringBuilder sb = new StringBuilder();
// Use a string builder for string creation.
for(String token : tokens)
{
String firstLetter = String.valueOf(token.charAt(0));
// After you have first letter, it's just a case of moving to upper case..
firstLetter = firstLetter.toUpperCase();
sb.append(firstLetter + token.substring(1, token.length()););
}
System.out.println(sb.toString());
尝试这个
String str = "File to be uploaded";
String[] arr = str.split(" ");
StringBuilder sb = new StringBuilder();
for (String i : arr) {
sb.append(i.substring(0, 1).toUpperCase() + i.substring(1, i.length()));
}
System.out.println(sb.toString());
// 使用正则表达式非常简单
private String capitalEachWord(String s) {
Pattern p = Pattern.compile("\\s+\\w"); // Search for one or more space
Matcher m = p.matcher(s);
StringBuffer buffer = new StringBuffer();
while (m.find()) m.appendReplacement(buffer, m.group().toUpperCase());
m.appendTail(buffer); // add to last
return buffer.toString();
}
这种形式的字符串称为CamelCase。
由于您无法更改字符串中的字符(因为它是不可变的),因此您必须通过迭代字符来构建新的字符串。如果遇到空格,请跳过该字符,但请记住将下一个字符大写。
public static String toCamelCase (String s) {
StringBuilder builder = new StringBuilder();
boolean capitalizeNextChar = false;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (Character.isWhitespace(c)) {
capitalizeNextChar = true;
} else {
if (capitalizeNextChar) {
c = Character.toUpperCase(c);
capitalizeNextChar = false;
}
builder.append(c);
}
}
return builder.toString();
}
简单地 你也可以使用split()
String abc = "File to be uploaded";
String temp[] = abc.split(" ");
String Result = "";
for (int i = 0; i < temp.length; i++)
{
if (temp[i].length() > 0)
Result = Result + temp[i].substring(0, 1).toUpperCase() + temp[i].substring(1, temp[i].length());
}
System.out.println(Result);
输出:
FileToBeUploaded