Reputation: 875
Suppose I am having two Strings as follows :
String name = "EXAMPLE_MODEL_1";
String actionName = "ListModels";
I want resulting string as Follows :
String result = "ExampleModel1ListModels";
I tried the Follwoing code :
String result = name.toLowerCase().replaceAll("_", "");
result = result.concat(actioName);
And I am getting the result value as "examplemodel1ListModels". But the exepected one is "ExampleModel1ListModels".
Upvotes: 0
Views: 662
Reputation: 2084
Try to use the following code (I'm editing and paste the full code)
import java.io.IOException;
public class StringTest{
public static void main(String[] arg) throws IOException{
String name = "EXAMPLE_MODEL_1"; String actionName = "ListModels";
String result = toProperCase(name.toLowerCase().replaceAll("_", " "))+actionName;
result= result.replaceAll(" ","");
System.out.println(result);
}
public static String toProperCase(String theString) throws java.io.IOException{
java.io.StringReader in = new java.io.StringReader(theString.toLowerCase());
boolean precededBySpace = true;
StringBuffer properCase = new StringBuffer();
while(true) {
int i = in.read();
if (i == -1) break;
char c = (char)i;
if (c == ' ' || c == '"' || c == '(' || c == '.' || c == '/' || c == '\\' || c == ',') {
properCase.append(c);
precededBySpace = true;
} else {
if (precededBySpace) {
properCase.append(Character.toUpperCase(c));
} else {
properCase.append(c);
}
precededBySpace = false;
}
}
return properCase.toString();
}
}
Upvotes: 0
Reputation: 80176
Apache commons-lang has utility classes that can help you. Below is my idea
Upvotes: 0
Reputation: 240900
Use Guava's CaseFormat
String result = LOWER_UNDERSCORE.to(UPPER_CAMEL, "EXAMPLE_MODEL_1") + "ListModels";
Upvotes: 0
Reputation: 107528
The name
string needs to have the underscores replaced -- you've done that. Before you do that, you need to convert it to title case.
After that, simply concatenate the two strings.
Upvotes: 2
Reputation: 15333
You are using toLowerCase()
method so you are getting result like that. Don't use this function.
Upvotes: 1