Ik heb een opdracht voor op de universiteit. Ik ben een beginner en heb nauwelijks ervaring. Op het moment zit ik helemaal vast. Ik wil natuurlijk geen volledige antwoorden (nouja, het zou wel leuk zijn
), ik wil vooral op weg geholpen worden.
De opdracht is hier te lezen (een pdf file). Ik hoop dat iemand mij weer een beetje op weg kan helpen.
Het zit zo. De definitie van een zin in de opdracht is een opeenvolging van karakters (cijfers of letters) MET één of meerdere spaties. Een woord mag ook een combinatie zijn van letters en cijfers, MAAR hij mag geen spaties bevatten en het is ook geen woord meer als er meer cijfers dan letters zijn. In dat geval is het een getallenreeks. Mijn probleem is dat op dit moment iets wat een getallenreeks zou moeten zijn aangegeven wordt als een woord en ik zie maar niet wat er fout is.
Het 2e deel van de opdracht is het filtreren van de invoer. Uit de zin en het woord moeten de cijfers weg en bij een getallenreeks de letters. Kan iemand mij hiermee op weg helpen?
Verder wilde ik nog even melden dat ik alleen charAt(), length() en toCharArray() uit de String klasse mag gebruiken. Geen enkele andere is toegestaan.
Het allerlaatste onderdeel. Kijken of het inderdaad een palindroom is of niet begrijp ik al. Deze staat ook als voorbeeld in mijn Java boek.
Alvast bedankt!

De opdracht is hier te lezen (een pdf file). Ik hoop dat iemand mij weer een beetje op weg kan helpen.
Code:
import java.util.Scanner;
public class Opgave4 {
public static void main(String[] args) {
char again;
do {
System.out.print("Typ een zin, woord of cijferreeks in: ");
Scanner scanner = new Scanner(System.in);
String reeks = scanner.nextLine();
methoden(reeks);
System.out.println();
System.out.print("Wilt u nog iets controleren? [y/n]: ");
again = scanner.next().charAt(0);
} while (again == 'y');
}
private static void methoden(String reeks) {
isGetallenReeks(reeks);
if (isGetallenReeks(reeks) == true) {
System.out.print("De invoer is een getallenreeks.");
}
isZin(reeks);
if (isZin(reeks) == true) {
System.out.print("De invoer is een zin.");
}
isWoord(reeks);
if (isWoord(reeks) == false) {
System.out.print("De invoer is een woord");
}
}
private static boolean isGetallenReeks(String reeks) {
woordOfGetal(reeks);
boolean waarde = woordOfGetal(reeks);
return waarde;
}
private static boolean isZin(String reeks) {
for (int i = 0; i < reeks.length(); i++) {
if (reeks.charAt(i) == 32) {
return true;
}
}
return false;
}
private static boolean isWoord(String reeks) {
for (int i = 0; i < reeks.length(); i++) {
if (reeks.charAt(i) == 32) {
return true;
}
}
return false;
}
private static boolean woordOfGetal(String reeks) {
int getal = 0;
int letter = 0;
for (int i = 0; i < reeks.length(); i++) {
if (reeks.charAt(i) >= 48 && reeks.charAt(i) <= 57);
getal++;
if (reeks.charAt(i) >= 65 && reeks.charAt(i) <= 90);
letter++;
if (reeks.charAt(i) >= 97 && reeks.charAt(i) <= 122);
letter++;
}
if (getal > letter)
return true;
else
return false;
}
}
Het zit zo. De definitie van een zin in de opdracht is een opeenvolging van karakters (cijfers of letters) MET één of meerdere spaties. Een woord mag ook een combinatie zijn van letters en cijfers, MAAR hij mag geen spaties bevatten en het is ook geen woord meer als er meer cijfers dan letters zijn. In dat geval is het een getallenreeks. Mijn probleem is dat op dit moment iets wat een getallenreeks zou moeten zijn aangegeven wordt als een woord en ik zie maar niet wat er fout is.
Het 2e deel van de opdracht is het filtreren van de invoer. Uit de zin en het woord moeten de cijfers weg en bij een getallenreeks de letters. Kan iemand mij hiermee op weg helpen?
Verder wilde ik nog even melden dat ik alleen charAt(), length() en toCharArray() uit de String klasse mag gebruiken. Geen enkele andere is toegestaan.
Het allerlaatste onderdeel. Kijken of het inderdaad een palindroom is of niet begrijp ik al. Deze staat ook als voorbeeld in mijn Java boek.
Alvast bedankt!