在空格后立即访问角色

时间:2013-09-05 09:44:26

标签: java

我想在空格之后立即访问字符并将转换为资本。 我知道大写和删除空格但不能在空格后访问该字符。

我想将"File to be uploaded"转换为"FileToBeUploaded"

5 个答案:

答案 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