Strings nur aus bestimmten Zeichen?

Bouyo

Mitglied
Ich suche eine Funktion mit der man einen String überprüfen kann ob nur bestimmte Zeichen enthalten sind. Also z.B.

zu prüfender String: "Bouyo"
erlaubte Zeichen: "aouBy"
Ergebnis: korrekt

zu prüfender String: "Bouyo"
erlaubte Zeichen: "aouyb"
Ergebnis: nicht korrekt da nur kleines "b" erlaubt

Bzw. eine Funktion die nicht erlaubte zeichen aus einem String löschen. Also aus letztem Beispiel würde es z.B. "ouyo" ergeben.
 
Zuletzt bearbeitet:
Ich suche eine Funktion mit der man einen String überprüfen kann ob nur bestimmte Zeichen enthalten sind. Also z.B.

zu prüfender String: "Bouyo"
erlaubte Zeichen: "aouBy"
Ergebnis: korrekt

zu prüfender String: "Bouyo"
erlaubte Zeichen: "aouyb"
Ergebnis: nicht korrekt da nur kleines "b" erlaubt

Java:
public static class StringVerifier{
	final String allowed;
	
	public StringVerifier(String allowed){
		this.allowed = allowed;
	}
	
	public boolean isAllowed(String toVerify){
		final char[] arr = toVerify.toCharArray();
		Iterator<Character> it = new Iterator<Character>(){
			
			int count = 0;
			
			@Override
			public boolean hasNext() {
				return count < arr.length;
			}

			@Override
			public Character next() {
				try{
					return arr[count++];
				} catch(ArrayIndexOutOfBoundsException e){
					throw new NoSuchElementException();
				}
			}
			
			@Override
			public void remove() {
				throw new UnsupportedOperationException();
			}
			
		};
		while(it.hasNext())
			if(allowed.indexOf(it.next()) == -1)
				return false;
		return true;
	}
}

E: hatte die Rollen vertauscht.
 
Zuletzt bearbeitet:
Java:
"Bouyo".matches("[aouBy]*")
Wunderbare Regex-Beispiele. Dieses sagt, dass die angegebenen Buchstaben beliebig oft (*; also 0..n) wiederholt werden können.
 

Zurück
Oben