0

我想在空格后立即访问字符并将其转换为 Capital。我知道大写和删除空格,但无法在空格后访问字符。

我想将:转换"File to be uploaded""FileToBeUploaded".

4

5 回答 5

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循环,因为 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());
于 2013-09-05T09:49:21.897 回答
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());
于 2013-09-05T09:52:05.813 回答
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();
}
于 2013-09-05T09:52:54.220 回答
0

这种形式的字符串称为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();
}
于 2013-09-05T09:57:13.870 回答
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
于 2013-09-05T10:00:14.920 回答