网站推广常用的方法,做 网站 技术支持 抓获,温州seo方法,网站设计客户端你所在的公司刚刚招收了几位程序员#xff0c;然而这些程序员之前在不同的公司工作#xff0c;所以他们习惯的变量命名规范可能存在差异#xff0c;需要让他们都习惯公司要求的命名规范#xff0c;然而这样可能会降低他们的工作效率。
你的上司找到了你#xff0c;希望你…你所在的公司刚刚招收了几位程序员然而这些程序员之前在不同的公司工作所以他们习惯的变量命名规范可能存在差异需要让他们都习惯公司要求的命名规范然而这样可能会降低他们的工作效率。
你的上司找到了你希望你能编写统一命名规范的程序确保效率不降低的前提下统一项目变量的命名规范。
现在已经知道公司中只会存在以下三种命名规范
驼峰Camel单词之间没有分隔符第一个单词首字母小写其余单词首字母大写其余字母小写例如 userName帕斯卡Pascal单词之间没有分隔符所有单词首字母大写其余字母小写例如 UserName 下划线Snake单词之间用下划线 _ 分隔所有字母小写例如 user_name 。
输入格式
第一行输入一个整数 N(1≤N≤100) 和一个字符串 T 分别表示变量名的数量和最后统一的命名规范其中命名规范只存在 CamelPascalSnake 三种。
接下来 N 行每行输入一个只包含大小写字母和下划线的字符串 Si(1≤∣Si∣≤50) 表示第 i 个变量名命名方式为 CamelPascalSnake 中的一种。
输出格式
每一行输出一个字符串表示第 i 个变量统一成命名规范 T 后的变量名。
输入样例
4 Snake
userName
Password
background_color
text输出样例
user_name
password
background_color
text代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
代码示例
import java.util.*;
public class Main{public static void main(String args[]){Scanner reader new Scanner(System.in);int n reader.nextInt();String type reader.next();for(int i0;in;i){String s reader.next();ListString words toWords(s);System.out.println(toLines(words,type));}}private static ListString toWords(String s) {ListString words new ArrayList();if(s.contains(_)){String[] split s.split(_);words.addAll(Arrays.asList(split));} else {if(!s.isEmpty()){int index 0;for(int i1; is.length(); i){if(Character.isUpperCase(s.charAt(i))){words.add(s.substring(index,i));index i;}}words.add(s.substring(index));}}return words;}private static String toLines(ListString words,String type) {StringBuilder s new StringBuilder();switch (type) {case Snake - {for (int i 0; i words.size(); i) {if (i 1) {s.append(_);}s.append(words.get(i).toLowerCase());}} case Camel - {s.append(words.get(0).toLowerCase());for (int i 1; i words.size(); i) {s.append(Character.toUpperCase(words.get(i).charAt(0)));s.append(words.get(i).substring(1).toLowerCase());}}case Pascal - {for (String word : words) {s.append(Character.toUpperCase(word.charAt(0)));s.append(word.substring(1).toLowerCase());}}}return s.toString();}
}