我想在空格之后立即访问字符并将转换为资本。 我知道大写和删除空格但不能在空格后访问该字符。
我想将"File to be uploaded"
转换为"FileToBeUploaded"
。
答案 0 :(得分:3)
没有正则表达式
要做的第一件事就是分开" "
..
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
循环,因为foreach
只会读取。
最后,坚持下去。您可以在同一个循环中执行此操作。如果您不想更改数组本身,可以在此上下文中使用foreach
,这看起来更好;如下:
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());
答案 1 :(得分:1)
试试这个
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());
答案 2 :(得分:1)
//使用正则表达式非常简单
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();
}
答案 3 :(得分:0)
这种形式的字符串称为CamelCase。
由于您无法更改字符串中的字符(因为它是不可变的),您必须通过迭代字符来构建新的String。如果您遇到空格,请跳过该字符,但请记住将下一个字符大写。
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();
}
答案 4 :(得分:0)
简单您也可以使用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