2012-04-03 8 views
2

Hallo Ich versuche, ein Programm zu schreiben, das Wörter in Silben mit rumänischen Regeln trennt. Versuchen, dies zu tun ist viel schwieriger als ich dachte, weil ich nicht weiß, wie ich diese Regeln erstellen kann was ich bisher habe und ich weiß, dass der Code unter dieser Bedingung nicht korrekt ist, aber ich muss überprüfen, ob der Buchstabe im Auto-Array im Vokabel-Array vorhanden ist, um dann zu prüfen, ob der nächste Buchstabe im Auto-Array im Consoane-Array existiert hier ist der Code, den ich das wissen, wenn die Bedingung falsch eingegeben wird, ich brauche nur eine Lösung, die Bedingung zu überprüfen:Wörter in Silben brechen

String[] vocale = {"a", "e", "i", "o", "u"}; 
String[] consoane = {"b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z"}; 
public String DesparteCuvant(String cuv){   
    String[] car = new String[cuv.length()]; 
    String c = ""; 

    for(int i = 0; i < cuv.length(); i++){ 
     car[i] = cuv.substring(i, i+1); 

    } 


    for (int j = 0; j < car.length - 2; j++){ 
     if(car[j] == vocale[] && car[j+1] == consoane[] && car[j+2] == vocale[]){ 

     } 

    }    

    return c; 
} 
+0

was sind die rumänischen Regeln? Wo finde ich eine Definition? würde gerne das umsetzen. – santa

+0

Sie können die Rulles hier finden alto sie sind in rumänischen Verwendung Google Chrome, um die Seite zu übersetzen Ich konnte nicht die Rulles in Englisch Entschuldigung – user1146440

+0

http://www.scritube.com/literatura-romana/grafatica/DESPARTIREA-CUVINTELOR-IN -SILA1622024117.php – user1146440

Antwort

1

Ok, wenn Sie nur die if-Anweisung arbeitet dies wollen bekommen, wie ich es tun würde:

private final Set<String> vocale = new HashSet<String>(); 
private final Set<String> consoane = new HashSet<String>(); 

private init(){ 
    // fill the sets with your strings 
} 

private boolean isVocale(String s){ 
    return vocale.contains(s); 
} 

private boolean isConsoane(String s){ 
    return consoane.contains(s); 
} 

Und Ihre if-Anweisung würde wie folgt aussehen:

if(isVocale(car[j]) && isConsoane(car[j+1]) && isVocale(car[j+2])){ 
     // do your stuff 
} 
1

Ich glaube, Sie regular expressions für diese Aufgabe verwenden könnte. Sie ermöglichen es Ihnen, solche Muster leichter aufzuschreiben.

Als Beispiel

// following is the enough to specify a "complex" pattern 
Pattern rule1 = Pattern.compile("([aeiou][bcdfghjklmnpqrstvwxyz][aeiou])"); 

Matcher matcher= rule1.matcher(strLine); 
while (matcher.find()){ 
    String aMatch= matcher.group(1); 
    // do what you need to do 
} 

wäre ein Ersatz für Ihre

for (int j = 0; j < car.length - 2; j++){ 
    if(car[j] == vocale[] && car[j+1] == consoane[] && car[j+2] == vocale[]){ 
    } 

}