w3resource

Java programming Exercises: Add a dash before and after every vowel in a given string

Java Regular Expression: Exercise-27 with Solution

Write a Java program to add a dash before and after every vowel in a given string.

The word vowel comes from the Latin word vocalis, meaning "vocal" (i.e. relating to the voice). In English, the word vowel is commonly used to refer both to vowel sounds and to the written symbols that represent them (a, e, o, u, y), and sometimes I.

Sample Solution-1:

Java Code:

public class test { 
   public static void main(String[] args) {	   
	    String text ="C++";
		System.out.println("Original string: "+text);
		System.out.println("Add a dash before and after every vowel in the said string: "+validate(text));
		text ="Java";
		System.out.println("\nOriginal string: "+text);
		System.out.println("Add a dash before and after every vowel in the said string: "+validate(text));
		text ="MID-CENTRALIZED";
		System.out.println("\nOriginal string: "+text);
		System.out.println("Add a dash before and after every vowel in the said string: "+validate(text));
		text ="LOWERED";
		System.out.println("\nOriginal string: "+text);
		System.out.println("Add a dash before and after every vowel in the said string: "+validate(text));
        }

   public static String validate(String text) {
	   return text.replaceAll("([AEIOUaeiou])","-$1-");
   }
}

Sample Output:

Original string: C++
Add a dash before and after every vowel in the said string: C++

Original string: Java
Add a dash before and after every vowel in the said string: J-a-v-a-

Original string: MID-CENTRALIZED
Add a dash before and after every vowel in the said string: M-I-D-C-E-NTR-A-L-I-Z-E-D

Original string: LOWERED
Add a dash before and after every vowel in the said string: L-O-W-E-R-E-D

Pictorial Presentation:

Java Regular Expression: Last n vowels of a given string.

Flowchart :

Flowchart: Last n vowels of a given string.

Sample Solution-2:

Java Code:

public class test { 
   public static void main(String[] args) {	   
	    String text ="C++";
		System.out.println("Original string: "+text);
		System.out.println("Add a dash before and after every vowel in the said string: "+validate(text));
		text ="Java";
		System.out.println("\nOriginal string: "+text);
		System.out.println("Add a dash before and after every vowel in the said string: "+validate(text));
		text ="MID-CENTRALIZED";
		System.out.println("\nOriginal string: "+text);
		System.out.println("Add a dash before and after every vowel in the said string: "+validate(text));
		text ="LOWERED";
		System.out.println("\nOriginal string: "+text);
		System.out.println("Add a dash before and after every vowel in the said string: "+validate(text));
        }
   public static String validate(String text) {
	   return text.replaceAll("(?i)([AEIOU])", "-$1-");
   }
}

Sample Output:

Original string: C++
Add a dash before and after every vowel in the said string: C++

Original string: Java
Add a dash before and after every vowel in the said string: J-a-v-a-

Original string: MID-CENTRALIZED
Add a dash before and after every vowel in the said string: M-I-D-C-E-NTR-A-L-I-Z-E-D

Original string: LOWERED
Add a dash before and after every vowel in the said string: L-O-W-E-R-E-D

Flowchart :

Flowchart: Last n vowels of a given string.

Java Code Editor:

Contribute your code and comments through Disqus.

Previous: Check whether a given string is a valid hex code or not.

Next: Reverse the words of length higher than 3 in a given string.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

Share this Tutorial / Exercise on : Facebook and Twitter

Java: Tips of the Day

What is the best way to filter a Java Collection?

Java 8 (2014) solves this problem using streams and lambdas in one line of code:

List<Person> beerDrinkers = persons.stream()
    .filter(p -> p.getAge() > 16).collect(Collectors.toList());

Use Collection#removeIf to modify the collection in place. (Notice: In this case, the predicate will remove objects who satisfy the predicate):

persons.removeIf(p -> p.getAge() <= 16);

lambdaj allows filtering collections without writing loops or inner classes:

List beerDrinkers = select(persons, having(on(Person.class).getAge(),
    greaterThan(16)));

Ref: https://bit.ly/3uwYid6