Remove vowels from a string

From Rosetta Code
Remove vowels from a string is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.

Remove vowels from a string

ALGOL 68

<lang algol68>BEGIN

   # returns s with the vowels removed #
   OP DEVOWEL = ( STRING s )STRING:
      BEGIN
           [ LWB s : UPB s ]CHAR result;
           INT r pos := LWB result - 1;
           FOR s pos FROM LWB s TO UPB s DO
               IF NOT char in string( s[ s pos ], NIL, "aeiouAEIOU" ) THEN
                   # have a non-vowel - add it to the output #
                   r pos +:= 1;
                   result[ r pos ] := s[ s pos ]
               FI
           OD;
           result[ LWB s : r pos ]
      END # DEVOWEL # ;
   # tests the DEVOWEL operator #
   PROC test devowel = ( STRING s )VOID:
        print( ( "<", s, "> -> <", DEVOWEL s, ">", newline ) );
   # some test cases #
   test devowel( ""                              );
   test devowel( "aAeEiIoOuU"                    );
   test devowel( "bcdfghjklmnprstvwxyz"          );
   test devowel( "abcdefghijklmnoprstuvwxyz"     );
   test devowel( "Algol 68 Programming Language" )

END</lang>

Output:
<> -> <>
<aAeEiIoOuU> -> <>
<bcdfghjklmnprstvwxyz> -> <bcdfghjklmnprstvwxyz>
<abcdefghijklmnoprstuvwxyz> -> <bcdfghjklmnprstvwxyz>
<Algol 68 Programming Language> -> <lgl 68 Prgrmmng Lngg>

Go

<lang go>package main

import (

   "fmt"
   "strings"

)

func removeVowels(s string) string {

   var sb strings.Builder
   vowels := "aeiouAEIOU"
   for _, c := range s {
       if !strings.ContainsAny(string(c), vowels) {
           sb.WriteRune(c)
       }
   }
   return sb.String()

}

func main() {

   s := "Go Programming Language"
   fmt.Println("Input  :", s)
   fmt.Println("Output :", removeVowels(s))

}</lang>

Output:
Input  : Go Programming Language
Output : G Prgrmmng Lngg

REXX

using the TRANSLATE BIF

<lang rexx>/*REXX program removes vowels (both lowercase and uppercase) from a string. */ parse arg x /*obtain optional argument from the CL.*/ if x= | x="," then x= 'REXX Programming Language' /*Not specified? Then use default*/ say ' input string: ' x $= translate( xrange(), ., ' ') /*define a string of almost all chars. */ q= substr($, verify($, x), 1) /*find a character NOT in the X string.*/ y= translate(x, q, " ") /*trans. blanks in the string (for now)*/ y= space(translate(y, , 'AEIOUaeiou'), 0) /*trans. vowels──►blanks, elide blanks.*/ y= translate(y, , q) /*trans the Q characters back to blanks*/ say 'output string: ' y /*stick a fork in it, we're all done. */</lang>

output   when using the default input:
 input string:  REXX Programming Language
output string:  RXX Prgrmmng Lngg

using character eliding

<lang rexx>/*REXX program removes vowels (both lowercase and uppercase) from a string. */ parse arg x /*obtain optional argument from the CL.*/ if x= | x="," then x= 'REXX Programming Language' /*Not specified? Then use default*/ say ' input string: ' x x= . || x /*prefix string with a dummy character.*/

    do j=length(x)-1  by -1  for  length(x)-1   /*process the string from the back─end.*/
    _= pos( substr(x, j, 1), 'AEIOUaeiou')      /*is this particular character a vowel?*/
    if _==0  then iterate                       /*if zero  (not a vowel), then skip it.*/
    x= left(x, j - 1)  ||  substr(x, j + 1)     /*elide the vowel just detected from X.*/
    end   /*j*/

x= substr(x, 2) /*elide the prefixed dummy character. */ say 'output string: ' x /*stick a fork in it, we're all done. */</lang>

output   is identical to the 1st REXX version.



Ring

<lang ring> load "stdlib.ring" str = "Ring Programming Language" see "Input : " + str + nl for n = 1 to len(str)

   if isVowel(str[n])
      str = substr(str,str[n],"")
   ok

next see "String without vowels: " + str + nl </lang>

Output:
Input : Ring Programming Language
String without vowels: Rng Prgrmmng Lngg

Wren

<lang ecmascript>var removeVowels = Fn.new { |s| s.where { |c| !"aeiouAEIOU".contains(c) }.join() }

var s = "Wren Programming Language" System.print("Input  : %(s)") System.print("Output : %(removeVowels.call(s))")</lang>

Output:
Input  : Wren Programming Language
Output : Wrn Prgrmmng Lngg