二、 写Java程序完成时间串到秒的转换,如:
“1w 2d 3h 4m 5s”5d*8h+2d*8h+4m*60s+5s=212645s
注:w-周,d-天,h-小时,m-分,s-秒(1w=5d,1d=8h)
w,d,h,m,s 不一定出现在字符串里,如对”3h 2d ”也应可以正确转换。
请给出正确的代码,谢谢!

解决方案 »

  1.   


    for example
    String str = "1w 2d 3h 4m 5s";
    String[] ss = str.split(" ");
    int result = 0;
    for (String s : ss) {
        char[] c = s.toLowerCase().toCharArray();
        switch(c[c.length-1]) {
            case 'w':
                result += Integer.valueOf(s.substring(0, s.length()-1))*5*8*60*60;
                break;
            case 'd':
                result += Integer.valueOf(s.substring(0, s.length()-1))*8*60*60;
                break;
            case 'h':
                result += Integer.valueOf(s.substring(0, s.length()-1))*60*60;
                break;
            case 'm':
                result += Integer.valueOf(s.substring(0, s.length()-1))*60;
                break;
            case 's':
                result += Integer.valueOf(s.substring(0, s.length()-1));
                break;
            default:
                break;
        }
    }
    System.out.printf("%ds\n", result);