孔乙己说“回”字有四种写法,编程语言中常见的命名风格有如下四种:
- 全部首字母大写
- 第一个单词首字母小写,其余单词首字母大写
- 单词全部小写,由下划线连接
- 单词全部小写,由减号连接
请设计并实现一个caseTransform函数,使得一个字符串str可以被方便地转成四种形式,并且将四种形式通过空格拼接成一个字符串返回
为方便起见,这里假设输入字符串全部符合以上四种形式的英文字母组合
PascalCaseTest
PascalCaseTest pascalCaseTest pascal_case_test pascal-case-test
PascalCaseTest
PascalCaseTest pascalCaseTest pascal_case_test pascal-case-test
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); //输入字符串 String s = sc.nextLine(); //对输入的字符串在大写字母或-或_前进行添加空格修改,为接下来分割做准备 StringBuilder sb = new StringBuilder(); for(int i=1; i<s.length(); i++){ if(i<s.length()-1) { if ((s.charAt(i) >= 'A' && s.charAt(i) <= 'Z')||(s.charAt(i)=='-')||(s.charAt(i)=='_')){ String sr = s.substring(0, i); sb.append(sr).append(" "); s = s.substring(i); i = 1; } }else if(i==s.length()-1){ sb.append(s); } } String sbss = sb.toString(); String[] st = sbss.split(" -| _|\\s"); int len = st.length; //需要输出的第一个字符串 StringBuilder sb1 = new StringBuilder(); for(int i=0; i<len; i++){ int lenn = st[i].length(); char c1 = Character.toUpperCase(st[i].charAt(0)); String sc1 = st[i].substring(1,lenn); sb1.append(c1).append(sc1); } String sb11 = sb1.toString(); //需要输出的第二个字符串 String[] st1 = new String[len]; for(int i=0; i<len; i++){ st1[i] = st[i].toLowerCase(); } StringBuilder sb2 = new StringBuilder(); sb2.append(st1[0]); for(int i=1; i<len; i++){ int lenn2 = st[i].length(); char c12 = Character.toUpperCase(st[i].charAt(0)); String sc2 = st[i].substring(1,lenn2); sb2.append(c12).append(sc2); } String sb22 = sb2.toString(); //需要输出的第三个字符串 StringBuilder sb3 = new StringBuilder(); for(int i=0; i<len; i++){ if(i<len-1) sb3.append(st1[i]).append("_"); if(i==len-1) sb3.append(st1[i]); } String sb33 = sb3.toString(); //需要输出的第四个字符串 StringBuilder sb4 = new StringBuilder(); for(int i=0; i<len; i++){ if(i<len-1) sb4.append(st1[i]).append("-"); if(i==len-1) sb4.append(st1[i]); } String sb44 = sb4.toString(); //输出结果 System.out.println(sb11+" "+sb22+" "+sb33+" "+sb44); } }