Camel case and snake case: Difference between revisions
Content added Content deleted
(Nim solution) |
(New post.) |
||
Line 623: | Line 623: | ||
" internal space " >snake " internal_space " |
" internal space " >snake " internal_space " |
||
" internal space " >camel " internalSpace " |
" internal space " >camel " internalSpace " |
||
</pre> |
|||
=={{header|Java}}== |
|||
The output of this example reflects the authors interpretation of the task. |
|||
<syntaxhighlight lang="java"> |
|||
import java.util.List; |
|||
public final class CamelCaseAndSnakeCase { |
|||
public static void main(String[] aArgs) { |
|||
List<String> variableNames = List.of( "snakeCase", "snake_case", "variable_10_case", "variable10Case", |
|||
"ergo rE tHis", "hurry-up-joe!", "c://my-docs/happy_Flag-Day/12.doc", " spaces "); |
|||
System.out.println(" ".repeat(27) + "=== To snake_case ==="); |
|||
for ( String text : variableNames ) { |
|||
System.out.println(String.format("%34s%s%s", text, " --> ", toSnakeCase(text))); |
|||
} |
|||
System.out.println(); |
|||
System.out.println(" ".repeat(27) + "=== To CamelCase ==="); |
|||
for ( String text : variableNames ) { |
|||
System.out.println(String.format("%34s%s%s", text, " --> ", toCamelCase(text))); |
|||
} |
|||
} |
|||
private static String toSnakeCase(String aCamel) { |
|||
aCamel = aCamel.trim().replace(SPACE, UNDERSCORE).replace(HYPHEN, UNDERSCORE); |
|||
StringBuilder snake = new StringBuilder(); |
|||
boolean first = true; |
|||
for ( char ch : aCamel.toCharArray() ) { |
|||
if ( first ) { |
|||
snake.append(ch); |
|||
first = false; |
|||
} else if ( ! first && Character.isUpperCase(ch) ) { |
|||
if ( snake.toString().endsWith(UNDERSCORE) ) { |
|||
snake.append(Character.toLowerCase(ch)); |
|||
} else { |
|||
snake.append(UNDERSCORE + Character.toLowerCase(ch)); |
|||
} |
|||
} else { |
|||
snake.append(ch); |
|||
} |
|||
} |
|||
return snake.toString(); |
|||
} |
|||
private static String toCamelCase(String aSnake) { |
|||
aSnake = aSnake.trim().replace(SPACE, UNDERSCORE); |
|||
StringBuilder camel = new StringBuilder(); |
|||
boolean underscore = false; |
|||
for ( char ch : aSnake.toCharArray() ) { |
|||
String letter = Character.toString(ch); |
|||
if ( letter.equals(UNDERSCORE) || letter.equals(HYPHEN) ) { |
|||
underscore = true; |
|||
} else if ( underscore ) { |
|||
camel.append(Character.toUpperCase(ch)); |
|||
underscore = false; |
|||
} else { |
|||
camel.append(ch); |
|||
} |
|||
} |
|||
return camel.toString(); |
|||
} |
|||
private static final String SPACE = " "; |
|||
private static final String UNDERSCORE = "_"; |
|||
private static final String HYPHEN = "-"; |
|||
} |
|||
</syntaxhighlight> |
|||
{{ out }} |
|||
<pre> |
|||
=== To snake_case === |
|||
snakeCase --> snake_case |
|||
snake_case --> snake_case |
|||
variable_10_case --> variable_10_case |
|||
variable10Case --> variable10_case |
|||
ergo rE tHis --> ergo_r_e_t_his |
|||
hurry-up-joe! --> hurry_up_joe! |
|||
c://my-docs/happy_Flag-Day/12.doc --> c://my_docs/happy_flag_day/12.doc |
|||
spaces --> spaces |
|||
=== To CamelCase === |
|||
snakeCase --> snakeCase |
|||
snake_case --> snakeCase |
|||
variable_10_case --> variable10Case |
|||
variable10Case --> variable10Case |
|||
ergo rE tHis --> ergoRETHis |
|||
hurry-up-joe! --> hurryUpJoe! |
|||
c://my-docs/happy_Flag-Day/12.doc --> c://myDocs/happyFlagDay/12.doc |
|||
spaces --> spaces |
|||
</pre> |
</pre> |
||