马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
你地点的公司刚刚招收了几位步伐员,然而这些步伐员之前在差别的公司工作,以是他们风俗的变量定名规范大概存在差别,必要让他们都风俗公司要求的定名规范,然而如许大概会低落他们的工作服从。
你的上司找到了你,渴望你能编写同一定名规范的步伐,确保服从不低落的条件下,同一项目变量的定名规范。
现在已经知道公司中只会存在以下三种定名规范:
- 驼峰(Camel),单词之间没有分隔符,第一个单词首字母小写,别的单词首字母大写,别的字母小写,比方 userName;
- 帕斯卡(Pascal),单词之间没有分隔符,全部单词首字母大写,别的字母小写,比方 UserName ;
- 下划线(Snake),单词之间用下划线 _ 分隔,全部字母小写,比方 user_name 。
输入格式:
第一行输入一个整数 N(1≤N≤100) 和一个字符串 T ,分别表现变量名的数目和末了同一的定名规范,此中定名规范只存在 Camel,Pascal,Snake 三种。
接下来 N 行每行输入一个只包罗巨细写字母和下划线的字符串 Si(1≤∣Si∣≤50) ,表现第 i 个变量名,定名方式为 Camel,Pascal,Snake 中的一种。
输特别式:
每一行输出一个字符串,表现第 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 i=0;i<n;i++){
- String s = reader.next();
- List<String> words = toWords(s);
- System.out.println(toLines(words,type));
- }
- }
- private static List<String> toWords(String s) {
- List<String> words = new ArrayList<>();
- if(s.contains("_")){
- String[] split = s.split("_");
- words.addAll(Arrays.asList(split));
- } else {
- if(!s.isEmpty()){
- int index = 0;
- for(int i=1; i<s.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(List<String> 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();
- }
- }
复制代码 |