問題 C: 命名規範

問題 C: 命名規範

時間限制: 1 Sec  內存限制: 128 MB
提交: 1936  解決: 1441
[提交] [狀態] [命題人:外部導入]

題目描述

在絕大多數程序設計語言中,變量名都不能包含空格。那麼如果我們使用的變量名由兩個或兩個以上的單詞來命名,我們就需要對這些單詞加以區分。

       一般程序設計中,有兩種變量命名規範:Snake方式和Camel方式。Snake方式是指單詞用小寫字母,單詞間下劃線(“_”)代替空格;Camel方式是指相鄰單詞首字母用大寫表示,對單詞加以區分。

       例如,你想定義一個變量表示一個數組數字之和,並且用英文“sum of array”。我們使用Snake方式的變量名爲:sum_of_array;用Camel命名方式的變量名爲:sumOfArray。

       現在請你將一個Snake方式命名的變量,轉換成Camel方式命名的變量。

 

輸入

第一行一個字符串,表示用Snake方式命名的變量名。

 

輸出

輸出轉換成Camel方式命名的變量名。

 

樣例輸入 Copy

<span style="color:#333333"><span style="color:#333333">sum_of_array</span></span>

樣例輸出 Copy

<span style="color:#333333"><span style="color:#333333">sumOfArray</span></span>

提示

【輸出輸出樣例2】

name.in

name.out

yu_yao_high_school

yuYaoHighSchool

 

【數據範圍】

對於100%的數據,輸入字符串長度不超過50,只包含小寫字母和‘_’,第一個和最後一個字符不可能是下劃線,且保證沒有兩個連續的下劃線出現。

解法1:用split函數轉換爲字符串數組輸出,如果ascii碼不記得沒關係,隨便找一個大小寫剪出來就是了,然後用char強制類型轉換就可以實現駝峯輸出,這樣做的好處是,減少把字符串轉換爲字符數組之後的時間複雜度。

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO 自動生成的方法存根
        Scanner scan = new Scanner(System.in);
        //int n = scan.nextInt();
        String temp = scan.nextLine();
        //StringBuffer out = new StringBuffer();
        String[] rec = new String[101];
        rec = temp.split("_");
        if(rec.length==1) {
            System.out.print(rec[0]);
        }else {
            System.out.print(rec[0]);
            for(int i=1;i<rec.length;i++) {
                System.out.print((char)(rec[i].charAt(0)+('A'-'a'))+rec[i].substring(1, rec[i].length()));
                //System.out.print();
            }
        }
    }

}

解法2:從計數器I入手

import java.util.Scanner;


public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        String str = scan.next();
        for(int i=0;i<str.length();i++){
            if(str.charAt(i)=='_'){
                char c = str.charAt(i+1);
                String p = c+"";
                p=p.toUpperCase();
                System.out.printf("%s", p);
                i++;
            }else{
                System.out.printf("%c",str.charAt(i));
            }
        }
        System.out.println();
        
        
    }

}
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章