package lanQiao;

import java.util.Scanner;
import java.util.Vector;

/**
 * 串的处理:
 * 本题目即是要求程序对用户输入的串进行处理,具体规则如下:
 *  1. 把每个单词的首字母变为大写。
 *  2. 把数字与字母之间用下划线字符(_)分开,使得更清晰 
 *  3. 把单词中间有多个空格的调整为1个空格。
 * @author 国真
 *
 */

public class demo3 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String string = scanner.nextLine(); //得到按回车键前的所有字符

        Vector vector = new Vector(); //new出一个只能存放char类型数据的数组
        for(int i=0; i='a' && vector.elementAt(index)<='z') { //让首字母大写
                //vector.set()用指定的元素替换指定位置上的元素, vector.elementAt()返回指定位置上的元素
                vector.set(index, (char) (vector.elementAt(index)-('a'-'A')));  
            }else if (vector.elementAt(index-1)==' ' && vector.elementAt(index)==' ') { //移出多余的空格
                vector.remove(index);
                index--;
            }else if (vector.elementAt(index-1)==' ' && 
                    (vector.elementAt(index)>='a' && vector.elementAt(index)<='z')){    //其他单词首字母大写
                vector.set(index, (char)(vector.elementAt(index)-('a'-'A')));
            }else if ((vector.elementAt(index)>='a'&&vector.elementAt(index)<='z') 
                    && (vector.elementAt(index-1)>='0'&&vector.elementAt(index-1)<='9')) {  //数字字母之间加_
                vector.add(index, '_');
                index++;
            }else if ((vector.elementAt(index-1)>='a'&&vector.elementAt(index-1)<='z') &&
                    (vector.elementAt(index)>='0'&&vector.elementAt(index)<='9')) { //字母数字之间加_
                vector.add(index,'_');
                index++;
            }
            index++;
        }
        for (int i = 0; i < vector.size(); i++) {   //打印数组中的元素
            System.out.print(vector.elementAt(i));
        }
        System.out.println();
    }

}