Volledige versie bekijken : [java] Hoe kan ik kijken of een String alleen maar uit chars bestaat van een char[]?



Triton456
13 June 2011, 20:11
Ik heb het zelf al een beetje geprobeerd, alleen kwam er niet helemaal uit. Wat ik wil is van een ingevoerde String kijken of het alleen maar uit characters bestaat van een opgeslagen char-Array. Hoe kan ik dit het beste aanpakken?

mvg
Triton456

ultddave
15 June 2011, 16:41
Ik weet niet direct de "beste" oplossing, maar je kan het zo doen:



String mijnString = "ab%c";
boolean isValid = true;
ArrayList<Character> chars = new ArrayList<Character>();
chars.add('a');
chars.add('b');
chars.add('%');
for(int i = 0; i < mijnString.length() && isValid; ++i)
if(!chars.contains(mijnString.charAt(i)))
isValid = false;
if(isValid)
System.out.println("Goed");
else
System.out.println("Fout");


Met een ArrayList, die heeft de contains functie.

Bij een gewone array moet je die manueel doorlopen.


for(int i = 0; i < mijnString.length() && isValid; ++i)
for(int j =0; j < chars.length; ++j)
if(!mijnString.charAt(i).equals(chars[j]))
isValid = false;

Eventueel kan je de rij met chars, alfabetisch sorteren en dan via binair zoeken, checken of hij erin staat of niet.

Maar ik persoonlijk zou gewoon reguliere expressies gebruiken.



String username = "ultddave1";
if(!Pattern.matches("[a-zA-Z0-9]+", username))
System.out.println("Gebruikersnaam bevat een niet toegelaten karakter");


Bijvoorbeeld. http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

Mvg,
Dave

Triton456
16 June 2011, 14:05
Bedankt, ik zal het even toepassen om te kijken of het werkt.

Mvg,
Triton456

Triton456
18 June 2011, 18:46
Oke, hij doet het perfect (heb de middelste gebruikt), heb nu alleen weer een nieuw probleem. Maak hier wel een nieuwe discussie voor. (Zie: "[java] String: replaceAll werkt niet.")

Hier kan een slotje op.

Mvg,
Triton456