Java变量驼峰法转下滑线

版权声明:本文为博主-姜兴琪原创文章,未经博主允许不得转载。 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;
    }
}

猜你喜欢

转载自blog.csdn.net/jxq0816/article/details/83240484