Java變數駝峰法轉下滑線
阿新 • • 發佈:2018-12-16
直接上程式碼
// 本題為考試單行多行輸入輸出規範示例,無需提交,不計分。 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int a = in.nextInt(); String[] array=new String[1000]; for(int i=0;i<a;i++){ array[i]=in.next(); } for(int i=0;i<a;i++){ System.out.println(camel2Underline(array[i]).trim()); } } public static String camel2Underline(String line){ if(line==null||"".equals(line)){ return ""; } String rs=""; for(int i=1;i<line.length();i++) { char c = line.charAt(i); char c_1 = line.charAt(i-1); if((i-1)==0&&Character.isUpperCase(c_1)){ c_1=Character.toLowerCase(c_1); } if (Character.isUpperCase(c)) { rs=rs+c_1+"_"+Character.toLowerCase(c); String sub=""; for(int j=i+1;j<line.length();j++){ char ch = line.charAt(j); if(Character.isUpperCase(ch)){ sub+=Character.toLowerCase(ch); }else{ break; } } if(sub.length()>0){ rs=rs+sub.substring(0,sub.length()-1)+"_"+sub.charAt(sub.length()-1); i=i+sub.length(); }else{ i++; } continue; }else{ rs+=c_1; } if(i==(line.length()-1)){ if (Character.isUpperCase(c)) { rs=rs+"_"+Character.toLowerCase(c);; }else{ rs+=c; } } //System.out.println(rs); //System.out.println(i); } return rs; } }