0

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".

Lucifer
  • 29,392
  • 25
  • 90
  • 143
Beginner
  • 855
  • 9
  • 21
  • 37

7 Answers7

2

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.

Community
  • 1
  • 1
Cᴏʀʏ
  • 105,112
  • 20
  • 162
  • 194
1

You are using toLowerCase() method so you are getting result like that. Don't use this function.

gprathour
  • 14,813
  • 5
  • 66
  • 90
1

Combine your partial solution, with the function described here:

What is the simplest way to convert a Java string from all caps (words separated by underscores) to CamelCase (no word separators)?

Community
  • 1
  • 1
Oleksi
  • 12,947
  • 4
  • 56
  • 80
1

Use Apache's WordUtil.Capitalize Method.

Prince John Wesley
  • 62,492
  • 12
  • 87
  • 94
0

Use Guava's CaseFormat

String result = LOWER_UNDERSCORE.to(UPPER_CAMEL, "EXAMPLE_MODEL_1") + "ListModels";
jmj
  • 237,923
  • 42
  • 401
  • 438
0

Apache commons-lang has utility classes that can help you. Below is my idea

  1. convert name to small case
  2. Use String capitalizeFully(String str, char[] delimiters) with delimiter as _
  3. Remove spaces out of result from step 1
  4. concatenate both
Aravind Yarram
  • 78,777
  • 46
  • 231
  • 327
0

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();    

    }
}
Ramkumar Murugadoss
  • 2,074
  • 1
  • 12
  • 9