算法-驼峰命名转下划线命名

1,554 阅读1分钟
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

public class TestCamel2Snake {

    @Test
    public void testCamel2Snake(){
        String camelStr = "camelLongStr";
        List<String> camelStrArray = new ArrayList();

        int start = 0;
        for(char ch : camelStr.toCharArray()){
            if(ch >= 'A' && ch <= 'Z'){
                String tempStr = camelStr.substring(start,camelStr.indexOf(ch));
                tempStr = tempStr.toLowerCase();
                camelStrArray.add(tempStr);

                start = camelStr.indexOf(ch);
            }
        }

        //最后一个单词的处理
        camelStrArray.add(camelStr.substring(start,camelStr.length()).toLowerCase());

        StringBuilder stringBuilder = new StringBuilder();
        for(String chs : camelStrArray){
            stringBuilder.append(chs + "_");
        }
        String result = stringBuilder.toString();
        if(result.lastIndexOf("_") > 0){
            result = result.substring(0,result.length()-1);
        }
        System.out.println(result);
    }
}