我一直在寻找如何将字符串的第一个字符大写,但我发现的任何东西都没有帮助。为了我的方法,我需要将用户输入的字符串设置为小写。
sourceText = enterText.getText();
char chr = sourceText.charAt(0);
所以我有一个布尔值,如果第一个字符是大写的,则为true。
boolean upperCase = Character.isUpperCase(chr);
sourceTextLower = sourceText.toLowerCase();
酷的东西发生在这里,最终产品是另一个名为translatedTextString的字符串和一个if语句
String s2 = "";
if(upperCase == true)
{
int x = translatedTextString.length();
s2 = translatedTextString.substring(0,1).toUpperCase().concat(translatedTextString.substring(1, x));
}
//translatedText is a label
translatedText.setText(s2);
但是,当我运行程序时,我的结果的第一个字符仍然是小写。所以我的问题是:这甚至是正确的方法吗?如果是这样,我做错了什么,如果不是,我怎么能正确地做到这一点?
答案 0 :(得分:6)
可能更容易假设第一个字母始终是小写的,那么您不需要任何检查:
String s = "some string";
String capitol = Character.toString(s.charAt(0)).toUpperCase();
String newString = capitol + s.substring(1,x);
答案 1 :(得分:2)
我只是在字符串的第一个字符上使用Character.toUpperCase函数,如下所示:
String s ="hello world";
String capitalized = Character.toUpperCase(s.charAt(0)) + s.substring(1);
答案 2 :(得分:1)
如果我正确理解您的代码,那么当upperCase = true时,您将其更改为大写?所以小写的那些不会触发那个标志,你不会做任何上面的事情......
应该是
if(!upperCase)
答案 3 :(得分:0)
试试这个完整的代码:
import java.io.DataInputStream;
import java.io.IOException;
public class captalizeCharactor {
public static void main(String[] args) throws IOException {
int a1, a2;
char ch1, ch2;
String str;
StringBuilder sb = null;
DataInputStream in = new DataInputStream(System.in);
str = in.readLine();
ch1 = str.charAt(0);
sb = new StringBuilder(str);
a1 = ch1;
if(a1>=97 || a1<=122){
a2 = a1 - 97;
ch2 = (char) (65+a2) ;
sb.setCharAt(0, ch2);
System.out.println(sb.toString());
}
}
}
答案 4 :(得分:0)
http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/text/WordUtils.html
或
String source = "hello good old world";
StringBuilder res = new StringBuilder();
String[] strArr = source.split(" ");
for (String str : strArr) {
char[] stringArray = str.trim().toCharArray();
stringArray[0] = Character.toUpperCase(stringArray[0]);
str = new String(stringArray);
res.append(str).append(" ");
}
System.out.print("Result: " + res.toString().trim());
答案 5 :(得分:0)
您可以查看此完整代码
import java.util.*;
import java.lang.*;
import java.io.*;
public class CapitalizeFirstCharacter
{
public static void main (String[] args) throws java.lang.Exception
{
Scanner input = new Scanner(System.in);
String word = input.next();
StringBuilder wordTemp = new StringBuilder(word);
char firstCharacter = wordTemp.charAt(0);
if(firstCharacter>=97 && firstCharacter<=122)
{
firstCharacter -= 32;
wordTemp.setCharAt(0, firstCharacter);
}
System.out.println(wordTemp.toString());
}
}