PascalCaseTest
PascalCaseTest pascalCaseTest pascal_case_test pascal-case-test
PascalCaseTest
PascalCaseTest pascalCaseTest pascal_case_test pascal-case-test
#include <bits/stdc++.h> using namespace std; int main() { string s; cin >> s; string type1 = "", type2 = "", type3 = "", type4 = ""; int n = s.size(); bool sign = false; type1.push_back(toupper(s[0])); type2.push_back(tolower(s[0])); type3.push_back(tolower(s[0])); type4.push_back(tolower(s[0])); for (int i = 1; i < n; ++i) { if (isupper(s[i]) || sign) { type1.push_back(toupper(s[i])); type2.push_back(toupper(s[i])); if (!sign) type3.push_back('_'); type3.push_back(tolower(s[i])); if (!sign) type4.push_back('-'); type4.push_back(tolower(s[i])); sign = false; } else if (s[i] == '_' || s[i] == '-') { type3.push_back('_'); type4.push_back('-'); sign = true; } else { type1.push_back(s[i]); type2.push_back(s[i]); type3.push_back(s[i]); type4.push_back(s[i]); sign = false; } } cout << type1 << ' ' << type2 << ' ' << type3 << ' ' << type4 << endl; return 0; }
s = input() if '_' in s: words = s.split('_') elif '-' in s: words = s.split('-') else: import re upperAlpha = re.findall('[A-Z]', s) words = re.split('[A-Z]', s) if not words[0]: words = words[1:] if len(upperAlpha) < len(words): # 首字母小写的驼峰 for i in range(1, len(words)): words[i] = (upperAlpha[i - 1] + words[i]).lower() else: # 首字母大写的驼峰 for i in range(len(words)): words[i] = (upperAlpha[i] + words[i]).lower() print(' '.join([''.join([word.capitalize() for word in words]), words[0] + ''.join([word.capitalize() for word in words[1:]]), '_'.join(words), '-'.join(words)]))
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String s = scanner.next(); int start = 0; StringBuilder ans0 = new StringBuilder(); StringBuilder ans1 = new StringBuilder(); for (int i = 1; i < s.length(); i++) { char c = s.charAt(i); if ((c >= 'A' && c <= 'Z') || c == '-' || c == '_') { ans0.append(Character.toUpperCase(s.charAt(start))).append(s, start + 1, i); ans1.append(Character.toLowerCase(s.charAt(start))).append(s, start + 1, i).append('_'); start = i; if (c == '-' || c == '_') start++; } } String s1 = ans0.append(Character.toUpperCase(s.charAt(start))).append(s, start + 1, s.length()).toString(); String s2 = ans1.append(Character.toLowerCase(s.charAt(start))).append(s, start + 1, s.length()).toString(); System.out.print(s1 + " "); System.out.print(s1.substring(0, 1).toLowerCase() + s1.substring(1) + " "); System.out.print(s2+" "); System.out.println(s2.replaceAll("_", "-")); } }
package main import ( "fmt" "strings" ) func main() { var s string fmt.Scan(&s) a := caseTransform(s) fmt.Println(a) } func caseTransform(s string) string { var res string var ss []string if strings.Contains(s, "-") { ss = strings.Split(s, "-") } else if strings.Contains(s, "_") { ss = strings.Split(s, "_") } else { c, p := 0, 1 for p < len(s) { if s[p] >= 'A' && s[p] <= 'Z' { ss = append(ss, s[c:p]) c = p } p++ } ss = append(ss, s[c:]) } if len(ss) == 1 { return ss[0] + " " + ss[0] + " " + ss[0] + " " + ss[0] } res = mergeStr(ss) return res } func mergeStr(s []string) string { var t1, t2, t3, t4 string //Pascal,Case,Test for i := 0; i < len(s); i++ { bs := []byte(s[i]) if bs[0] <= 'Z' { //开头是大写的情况 t1 += string(bs) //t1要求全大写 if i > 0 { t2 += string(bs) //t2只有除了第一个才是大写 } bs[0] += 32 if i == 0 { t2 += string(bs) } t3 += string(bs) + "_" t4 += string(bs) + "-" } else { //开头是小写的情况 if i == 0 { t2 += string(bs) } t3 += string(bs) + "_" t4 += string(bs) + "-" bs[0] -= 32 t1 += string(bs) //t1要求全大写 if i > 0 { t2 += string(bs) //t2只有除了第一个才是大写 } } } t3 = t3[:len(t3)-1] t4 = t4[:len(t4)-1] return t1 + " " + t2 + " " + t3 + " " + t4 }
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); sc.close(); if (s.isEmpty()) { System.out.println(""); return; } List<String> res = new ArrayList<>(); char[] cs = s.toCharArray(); int n = cs.length; if (isBig(cs[0])) { //首字母大写 int start = 0; cs[0] = (char)('a' + cs[0] - 'A'); for (int i = 1; i < n; i++) { if (isBig(cs[i])) { //转为小写 cs[i] = (char)('a' + cs[i] - 'A'); res.add(new String(cs, start, i - start)); start = i; } } res.add(new String(cs, start, n - start)); } else if (s.contains("_")) { String[] ss = s.split("_"); for (String str: ss) { res.add(str); } } else if (s.contains("-")) { String[] ss = s.split("-"); for (String str: ss) { res.add(str); } } else { //驼峰 int start = 0; for (int i = 0; i < n; i++) { if (isBig(cs[i])) { //转为小写 cs[i] = (char)('a' + cs[i] - 'A'); res.add(new String(cs, start, i - start)); start = i; } } res.add(new String(cs, start, n - start)); } String[] ans = new String[4]; Arrays.fill(ans, ""); for (String tmp: res) { ans[2] += tmp + "_"; ans[3] += tmp + "-"; char[] cur = tmp.toCharArray(); cur[0] = (char)(cur[0] - 'a' + 'A'); String str = new String(cur); ans[0] += str; ans[1] += str; } cs = ans[1].toCharArray(); cs[0] = (char)(cs[0] - 'A' + 'a'); ans[1] = new String(cs); ans[2] = ans[2].substring(0, ans[2].length() - 1); ans[3] = ans[3].substring(0, ans[3].length() - 1); for (int i = 0; i < 4; i++) { System.out.print(ans[i] + " "); } } private static boolean isBig(char c) { return c >= 'A' && c <= 'Z'; } }
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); //输入字符串 String s = sc.nextLine(); //对输入的字符串在大写字母或-或_前进行添加空格修改,为接下来分割做准备 StringBuilder sb = new StringBuilder(); for(int i=1; i<s.length(); i++){ if(i<s.length()-1) { if ((s.charAt(i) >= 'A' && s.charAt(i) <= 'Z')||(s.charAt(i)=='-')||(s.charAt(i)=='_')){ String sr = s.substring(0, i); sb.append(sr).append(" "); s = s.substring(i); i = 1; } }else if(i==s.length()-1){ sb.append(s); } } String sbss = sb.toString(); String[] st = sbss.split(" -| _|\\s"); int len = st.length; //需要输出的第一个字符串 StringBuilder sb1 = new StringBuilder(); for(int i=0; i<len; i++){ int lenn = st[i].length(); char c1 = Character.toUpperCase(st[i].charAt(0)); String sc1 = st[i].substring(1,lenn); sb1.append(c1).append(sc1); } String sb11 = sb1.toString(); //需要输出的第二个字符串 String[] st1 = new String[len]; for(int i=0; i<len; i++){ st1[i] = st[i].toLowerCase(); } StringBuilder sb2 = new StringBuilder(); sb2.append(st1[0]); for(int i=1; i<len; i++){ int lenn2 = st[i].length(); char c12 = Character.toUpperCase(st[i].charAt(0)); String sc2 = st[i].substring(1,lenn2); sb2.append(c12).append(sc2); } String sb22 = sb2.toString(); //需要输出的第三个字符串 StringBuilder sb3 = new StringBuilder(); for(int i=0; i<len; i++){ if(i<len-1) sb3.append(st1[i]).append("_"); if(i==len-1) sb3.append(st1[i]); } String sb33 = sb3.toString(); //需要输出的第四个字符串 StringBuilder sb4 = new StringBuilder(); for(int i=0; i<len; i++){ if(i<len-1) sb4.append(st1[i]).append("-"); if(i==len-1) sb4.append(st1[i]); } String sb44 = sb4.toString(); //输出结果 System.out.println(sb11+" "+sb22+" "+sb33+" "+sb44); } }
string = input() words = [] N = len(string) i = 0 if "_" in string: words = list(string.split('_')) elif "-" in string: words = list(string.split('-')) elif string[0].islower(): i = 0 tmp = "" while i < N and string[i].islower(): tmp += string[i] i += 1 words = [tmp] while i < N: if string[i].isupper(): word = "" word += string[i].lower() i += 1 while i < N and string[i].islower(): word += string[i] i += 1 words.append(word) else: while i < N: if string[i].isupper(): word = "" word += string[i].lower() i += 1 while i < N and string[i].islower(): word += string[i] i += 1 words.append(word) s3 = "_".join(words) s4 = "-".join(words) s1 = "" for word in words: s1 += word[0].upper() + word[1:] s2 = words[0] for word in words[1:]: s2 += word[0].upper() + word[1:] print(s1 + ' ' + s2 + ' ' + s3 + ' ' + s4)
#include<bits/stdc++.h> using namespace std; int main(){ string input; cin >> input; string o1, o2, o3, o4; o1.push_back(toupper(input[0])); o2.push_back(tolower(input[0])); o3.push_back(tolower(input[0])); o4.push_back(tolower(input[0])); int flag = 0; for(int i = 1; i < input.size(); ++i){ //如果前面有_或者-那么下一个必须是转折点 if(input[i] == '-' || input[i] == '_'){ o3.push_back('_'); o4.push_back('-'); flag = 1; } //如果当前是大写或者是转折点 else if(input[i] >= 'A' && input[i] <= 'Z' || flag){ o1.push_back(toupper(input[i])); o2.push_back(toupper(input[i])); if(!flag){ o3.push_back('_'); o4.push_back('-'); } o3.push_back(tolower(input[i])); o4.push_back(tolower(input[i])); flag = 0; } //如果是小写 else{ o1.push_back(input[i]); o2.push_back(input[i]); o3.push_back(input[i]); o4.push_back(input[i]); } } cout<< o1 << " " << o2 << " " << o3 << " " << o4 <<endl; }
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.PrintWriter; import java.util.Scanner; /** * ChangeNameStyle class * * @author Soarkey * @date 2021/3/26 */ public class Main { public static void main(String[] args) { Scanner in = new Scanner(new BufferedInputStream(System.in)); PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out)); while (in.hasNext()) { String s = in.nextLine(); out.println(caseTransform(s)); ; } in.close(); out.close(); } public static String caseTransform(String s) { char[] sc = s.toCharArray(); int n = sc.length; StringBuilder[] builders = new StringBuilder[4]; for (int i = 0; i < 4; ++i) { builders[i] = new StringBuilder(n + 1); } boolean isNewPattern = true; boolean isFirst = true; for (int i = 0; i < n; ++i) { if (Character.isUpperCase(sc[i]) || isNewPattern) { if (!isFirst) { builders[2].append("_"); builders[3].append("-"); } char upper = Character.toUpperCase(sc[i]), lower = Character.toLowerCase(sc[i]); builders[0].append(upper); if (isFirst) { builders[1].append(lower); } else { builders[1].append(upper); } builders[2].append(lower); builders[3].append(lower); isNewPattern = false; isFirst = false; } else if (sc[i] == '-' || sc[i] == '_') { isNewPattern = true; } else { builders[0].append(sc[i]); builders[1].append(sc[i]); builders[2].append(sc[i]); builders[3].append(sc[i]); } } StringBuilder ans = new StringBuilder(); for (int i = 0; i < 3; ++i) { ans.append(builders[i] + " "); } ans.append(builders[3]); return ans.toString(); } }
import re # 只对首字母进行大小写处理 def get_first_upper(original_str,no_upper_index): """ :param original_str: 原始字符串 :param no_upper_index: 单词首字母保持小写的下标 :return: 处理后的字符串 """ arr = original_str.split() print (arr) for i in range(0, len(arr)): if i == no_upper_index : continue else: arr[i] = arr[i].capitalize() result = " ".join(arr) return result # 单词全部小写,由repl链接 def get_join_lower(original_str,repl): """ :param original_str: 原始字符串 :param repl: 替换空格的字符 :return: 处理后的字符串 """ upper_str = original_str.lower() #将字符串中的大写转化成小写 upper_str = upper_str.strip() #去除前后空格 result = re.sub(' ',repl,upper_str) #将空格替换成减号 return result def caseTransform(original_str): str1 = get_first_upper(original_str,-1) str2 = get_first_upper(original_str,0) str3 = get_join_lower('this is a python','_') str4 = get_join_lower('this is a python','-') result = str1 + " "+str2+" "+str3+ " "+str4 return result result = caseTransform("this is a python") print (result)
public class stringTransfer {
public static StringBuffer strTransfer(String Str) {
// TODO Auto-generated constructor stub
if (Str.length() == 0 || Str.equals(null)) {
return null;
}
StringBuffer result = new StringBuffer();
String aString = Str;// 全部首字母大写
String bString = "";// 第一个单词首字母小写,其余单词首字母大写
String cString = "";// 单词全部小写,由下划线连接
String dString = "";// 单词全部小写,由减号连接
int count = 0;
for (int i = 0; i < Str.length(); i++) {
char charTemp = Str.charAt(i);
String strTemp = Character.toString(charTemp);
int intTemp = charTemp;
if (intTemp >= 65 && intTemp <= 90) {
if (count == 0) {
strTemp = strTemp.toLowerCase();
bString = bString + strTemp;
cString = cString + strTemp;
dString = dString + strTemp;
} else {
bString = bString + strTemp;
strTemp = strTemp.toLowerCase();
cString = cString + "_" + strTemp;
dString = dString + "-" + strTemp;
}
count++;
} else {
bString = bString + strTemp;
cString = cString + strTemp;
dString = dString + strTemp;
}
}
result.append(aString);
result.append(" ");
result.append(bString);
result.append(" ");
result.append(cString);
result.append(" ");
result.append(dString);
return result;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
// String aString="azAZ";
// for (int i = 0; i < aString.length(); i++) {
// int a=aString.charAt(i);
// System.out.println(a);
// }
// aString=aString+"d";
// System.out.println(aString.toLowerCase());
String teString = "PascalCaseTest";
System.out.println(strTransfer(teString));
}
}