Java 在空格后访问字符
我想在空格后访问字符,并将其转换为大写。 我知道大写和删除空格,但无法访问空格后的字符Java 在空格后访问字符,java,Java,我想在空格后访问字符,并将其转换为大写。 我知道大写和删除空格,但无法访问空格后的字符 我想将:“要上载的文件”转换为“FileToBeUploaded”而不使用Regex 首先要做的是在“上拆分 String[] tokens = string.split(" "); 然后下一步是循环遍历每个令牌,并获取第一个字母 for(int x = 0; x < tokens.length; x++) { String token = tokens[x]; String firs
我想将:
“要上载的文件”
转换为“FileToBeUploaded”
而不使用Regex
首先要做的是在“
上拆分
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());
}
不带正则表达式 首先要做的是在
“
上拆分
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());
}
试试这个
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());
试试这个
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();
}
//使用正则表达式非常简单
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();
}
这种形式的字符串称为 由于不能更改字符串中的字符(因为它是不可变的),因此必须通过迭代字符来构建新字符串。如果遇到空白,请跳过该字符,但记住将下一个字符大写
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();
}
publicstaticstringtocamelcase(字符串s){
StringBuilder=新的StringBuilder();
布尔值大写nextchar=false;
对于(int i=0;i
这种形式的字符串称为
由于不能更改字符串中的字符(因为它是不可变的),因此必须通过迭代字符来构建新字符串。如果遇到空白,请跳过该字符,但记住将下一个字符大写
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();
}
publicstaticstringtocamelcase(字符串s){
StringBuilder=新的StringBuilder();
布尔值大写nextchar=false;
对于(int i=0;i
您也可以使用split()
您也可以使用
split()
尝试一些东西,让我们知道什么是有效的。用indexOf获取空间的索引。添加1。尝试一些方法,让我们知道哪些方法有效。使用indexOf获取空间的索引。添加1。无论如何,这不会给出ConcurrentModificationException。数组不会抛出ConcurrentModificationException。Plus集合仅在您在迭代时添加/删除项时抛出它们,而您在这里没有这样做。您不能使用foreach,因为foreach只读取,您所做的任何修改都不会写回数组。。我的想法是正确的,但原因是错误的:P我现在就编辑。字符串与+串联是邪恶的,最好使用StringBuilder。嗯。。同意。编辑。
String
类没有getCharAt
方法,它只是charAt
并且您不需要使用变量firstLetter(在每次循环迭代中声明),您可以使用sb.append(Character.toUpperCase(token.charAt(0))+token.substring(1,token.length())代码>在循环中,无论如何都不会给出ConcurrentModificationException。数组不会抛出ConcurrentModificationException。Plus集合仅在您在迭代时添加/删除项时抛出它们,而您在这里没有这样做。您不能使用foreach,因为foreach只读取,您所做的任何修改都不会写回数组。。我的想法是正确的,但原因是错误的:P我现在就编辑。字符串与+串联是邪恶的,最好使用StringBuilder。嗯。。同意。编辑。String
类没有getCharAt
方法,它只是charAt
并且您不需要使用变量firstLetter(在每次循环迭代中声明),您可以使用sb.append(Character.toUpperCase(token.charAt(0))+token.substring(1,token.length())代码>在循环中