Home > DeveloperSection > Forums > Use split method with stringbuilder together in the same class?
Monaj Singh
Monaj Singh

Total Post:41

Points:287
Posted on    December-22-2015 11:38 PM

 Java Java  String 
Ratings:


 1 Reply(s)
 175  View(s)
Rate this:
StringBuilder to hide vowels:

String bienvenue_intro = " Welcome! Java First Semester: 455, java street: City (State): Country: 575757 ";
            StringBuilder sb = new StringBuilder(bienvenue_intro);
             String[] introduction = bienvenue_intro.split(":"); 
            for (int i = 0; i < bienvenue_intro.length(); i++)
            {
                char c = bienvenue_intro.charAt(i);
                if (   (c == 'A') || (c == 'a')
                     || (c == 'E') || (c == 'e')
                     || (c == 'I') || (c == 'i')
                     || (c == 'O') || (c == 'o')
                     || (c == 'U') || (c == 'u'))
                {
                    sb.setCharAt(i, '*');
                }
            }
            System.out.println(bienvenue_intro);;
            System.out.println(sb.toString());

The output of the above code is:

Welcome! Java First Semester: 455, java street: City (State): Country: 575757 
 W*lc*m*! J*v* F*rst S*m*st*r: 455, j*v* str**t: C*ty (St*t*): C**ntry: 575757 
Method split to break the lines:

for (int i = 0; i < introduction.length; i++)
            System.out.println(introduction[i]);
The desired output using split + string builder would be:

W*lc*m*! J*v* F*rst S*m*st*r
 455, j*v* str**t
 C*ty (St*t*)
 C**ntry
 575757 
But both together it does not work! Is it even possible to team StringBuilder with the Split method?


Mayank Tripathi
Mayank Tripathi

Total Post:397

Points:3117
Supported
Posted on    December-22-2015 11:46 PM

Don't split the String before, first to the transformation. StringBuilder will perform the in-place character replacement for you and get the replaced String using toString() and perform the split on it.

String bienvenue_intro = " Welcome! Java First Semester: 455, java street: City (State): Country: 575757 ";
StringBuilder sb = new StringBuilder(bienvenue_intro);
for (int i = 0; i < bienvenue_intro.length(); i++) {
  char c = bienvenue_intro.charAt(i);
  if (   (c == 'A') || (c == 'a')
      || (c == 'E') || (c == 'e')
      || (c == 'I') || (c == 'i')
      || (c == 'O') || (c == 'o')
      || (c == 'U') || (c == 'u')) {
    sb.setCharAt(i, '*');
  }
}
System.out.println(bienvenue_intro);
//System.out.println(sb.toString());
String[] introduction = sb.toString().split(":");  //<-- Do the split here after replacements.
for (String string : introduction) {
  System.out.println(string);
}
Output:
 W*lc*m*! J*v* F*rst S*m*st*r
 455, j*v* str**t
 C*ty (St*t*)
 C**ntry
 575757 

Don't want to miss updates? Please click the below button!

Follow MindStick