版权声明:本文为博主-姜兴琪原创文章,未经博主允许不得转载。 https://blog.csdn.net/jxq0816/article/details/83240484
直接上代码
// 本题为考试单行多行输入输出规范示例,无需提交,不计分。
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;
}
}