String字符串的之间的各类转化操作
【字母大写转换小写】 【字母小写转换大写】 【大小写互换】 【字母一大二小】 【首字母转大写】 【字符串字母前后颠倒输出】
package sun.rain.amazing.util;
import java.util.Optional;
/**
* Created by sunRainAmazing on SUN_RAIN_AMAZING
* @author sunRainAmazing
*/
public class LetterTransform {
/**
* 【字母大写转换小写】
* @param str
* @return
*/
public static String toLowerCase (String str){
return str.toLowerCase();
}
/**
* 【字母小写转换大写】
* @param str
* @return
*/
public static String toUpperCase (String str){
return str.toUpperCase();
}
/**
* 【大小写互换】
* 将字符串字母 大小写互换 --apache 源码大小写转换
* @param str
* @return
*/
public static String swapCase (String str){
if (isEmpty(str)) {
return str;
}
char [] buffer = str.toCharArray();
for (int i = 0 ; i < buffer.length; i++) {
char ch = buffer[i];
if (Character.isUpperCase(ch)) {
buffer[i] = Character.toLowerCase(ch);
} else if (Character.isTitleCase(ch)) {
buffer[i] = Character.toLowerCase(ch);
} else if (Character.isLowerCase(ch)) {
buffer[i] = Character.toUpperCase(ch);
}
}
return new String(buffer);
}
/**
* 判断string字符串是否为空
* @param str
* @return
*/
public static boolean isEmpty (String str){
return str==null &&str.length()<1 ;
}
/**
* 判断string字符串是否为空
* --java8
* @param str
* @return
*/
public static boolean notEmpty (String str){
return Optional.ofNullable(str).map(String::length).orElse(0 )>0 ;
}
/**
* 【字母一大二小】依次转换
* @param str
* @return
*/
public static String toUpperThenLower (String str){
if (isEmpty(str)) {
return str;
}
char [] buffer = str.toCharArray();
int even = 0 ;
for (int i = 0 ; i < buffer.length; i++) {
char ch = buffer[i];
if (Character.isLetter(ch)){
if (isEven(even)) {
buffer[i] = Character.toUpperCase(ch);
even++;
} else if (!isEven(even)) {
buffer[i] = Character.toLowerCase(ch);
even++;
}
}
}
return new String(buffer);
}
/**
* 判断数字是否为偶数
* @param num
* @return
*/
public static boolean isEven (int num){
return num % 2 ==0 ;
}
/**
* 【首字母转大写】
* --> 一句话中的每个单词的首字母转为大写
* 注 每个单词之间以空格隔开
* 并非是首字符转大写
* . 任何字符(与行结束符可能匹配也可能不匹配)
* \d 数字:[0-9]
* \D 非数字: [^0-9]
* \s 空白字符:[ \t\n\x0B\f\r]
* \S 非空白字符:[^\s]
* \w 单词字符:[a-zA-Z_0-9]
* \W 非单词字符:[^\w]
*
*/
public static String toUpperOnlyFirst (String str){
String[] s = str.split("\\s" );
StringBuffer sBuffer = new StringBuffer();
for (int i=0 ; i<s.length; i++){
sBuffer.append(s[i].substring(0 ,1 ).toUpperCase())
.append(s[i].substring(1 ))
.append(" " );
}
return sBuffer.toString();
}
/**
* 【字符串字母前后颠倒输出】
* @param str
* @return
*/
public static String toResolveCase (String str){
if (isEmpty(str)) {
return str;
}
char [] buffer = str.toCharArray();
StringBuffer sBuffer = new StringBuffer();
for (int i=buffer.length-1 ; i>-1 ; i--){
sBuffer.append(buffer[i]);
}
return sBuffer.toString();
}
}