在Java編程中,經(jīng)常會(huì)需要將一些字符串轉(zhuǎn)換為大寫,例如處理用戶輸入、比較字符串等等。本文將介紹幾種Java轉(zhuǎn)換為大寫的實(shí)現(xiàn)方法,以供參考。
一、Java自帶的toUpperCase方法
Java自帶了一個(gè)toUpperCase方法,可以將字符串轉(zhuǎn)換為大寫形式。這個(gè)方法的實(shí)現(xiàn)非常簡(jiǎn)單,只需要在字符串后面調(diào)用這個(gè)方法即可:
String str = "hello world";
String upperStr = str.toUpperCase();
System.out.println(upperStr);//輸出:HELLO WORLD
這里的toUppderCase方法返回的是一個(gè)新的字符串,原字符串不會(huì)被修改。
二、使用Locale參數(shù)進(jìn)行本地化轉(zhuǎn)換
toUpperCase方法還支持一個(gè)Locale類型的參數(shù),用于進(jìn)行本地化轉(zhuǎn)換。這個(gè)參數(shù)一般是用來指定語(yǔ)言環(huán)境的,以便正確地處理不同語(yǔ)言的字符串。
String str = "hello world";
String upperStr1 = str.toUpperCase(Locale.CHINA);
String upperStr2 = str.toUpperCase(Locale.US);
System.out.println(upperStr1);//輸出:HELLO WORLD
System.out.println(upperStr2);//輸出:HELLO WORLD
上面的示例中,分別使用了中文和美國(guó)英語(yǔ)的語(yǔ)言環(huán)境進(jìn)行了轉(zhuǎn)換,輸出結(jié)果是一樣的。
三、使用StringBuffer/StringBuilder實(shí)現(xiàn)
除了上面提到的基于字符串自帶方法的轉(zhuǎn)換方式外,還可以使用StringBuilder或StringBuffer進(jìn)行操作。
String str = "hello world";
StringBuilder sb = new StringBuilder(str);
for(int i=0; i < sb.length(); i++){
char c = sb.charAt(i);
if(Character.isLowerCase(c)){
sb.setCharAt(i, Character.toUpperCase(c));
}
}
String upperStr = sb.toString();
System.out.println(upperStr);//輸出:HELLO WORLD
上面的代碼使用了一個(gè)for循環(huán)遍歷字符串中的每個(gè)字符,如果是小寫字母,則使用setCharAt方法將其轉(zhuǎn)換為大寫字母。最后調(diào)用StringBuilder的toString方法得到轉(zhuǎn)換后的字符串。
四、使用Java8的Stream API實(shí)現(xiàn)
Java8引入的Stream API可以非常方便地進(jìn)行集合、數(shù)組等數(shù)據(jù)的操作,包括字符串的轉(zhuǎn)換操作。下面是一個(gè)使用Stream API實(shí)現(xiàn)轉(zhuǎn)換的示例:
String str = "hello world";
String upperStr = str.chars()
.map(Character::toUpperCase)
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
System.out.println(upperStr);//輸出:HELLO WORLD
這里使用了chars方法將字符串轉(zhuǎn)換為IntStream,然后使用Stream API中的map方法將每個(gè)字符轉(zhuǎn)換為大寫字母,最后使用collect方法將轉(zhuǎn)換后的字符收集到一個(gè)字符串中。
總結(jié)
以上就是幾種Java轉(zhuǎn)換為大寫的實(shí)現(xiàn)方法,其中Java自帶的toUpperCase方法最為簡(jiǎn)單易用。使用Locale可以進(jìn)行本地化轉(zhuǎn)換,考慮到語(yǔ)言環(huán)境的差異。使用StringBuilder/StringBuffer和Stream API可以更加靈活地實(shí)現(xiàn)轉(zhuǎn)換操作,適用于一些特殊的需求場(chǎng)合。