import java.util.Scanner;
public class Main {
public static String change(String s){
//结果字符串
StringBuilder sb=new StringBuilder();
//小写就直接append
//遇到大写就继续往后判断一直到最后一个连续的大写为止 然后插入_小写_
//只有一个大写直接 append _小写注意是不是第一个字符
for(int i=0;i<s.length();++i)
{
StringBuilder temp=new StringBuilder();
if(Character.isLowerCase(s.charAt(i)))
{
sb.append(s.charAt(i));
}
//当前字母是大写后一个字母存在
else if(Character.isUpperCase(s.charAt(i))&&(i+1<=s.length()-1))
{
//如果后一个字母是小写 直接添加
if(Character.isLowerCase(s.charAt(i+1)))
{
//第一个大写字母前面不要加_
if(i!=0)
{
sb.append("_").append(Character.toLowerCase(s.charAt(i)));
}
else{
sb.append(Character.toLowerCase(s.charAt(i)));
}
}
//找到最后一个连续的大写字母的位置
else
{
//进入循环判断 只要是大写i++
while(Character.isUpperCase(s.charAt(i)))
{
temp.append(Character.toLowerCase(s.charAt(i)));
i++;
}
//(start,i-1)都是大写
sb.append("_").append(temp.toString()).append("_");
sb.append(s.charAt(i));
}
}
}
return sb.toString();
}
public static void main(String[] args) {
while(true)
{
Scanner scanner=new Scanner(System.in);
System.out.println(change(scanner.next()));
}
}
}
04-10
1050
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
09-08