2017-11-07 2 views
-4

Ich versuche, ein Sprachmodell zu erstellen, das Wörter verarbeitet und ich Probleme habe, da mein Korpus in einer Fremdsprache ist und daher Unicode-Zeichen wie ġ, ħ und ż hat, aber die equals arbeitet nicht an Wörtern mit diesen Buchstaben obwohl ich Text aus einer Textdatei lese und solche Wörter genau kopiere. Was kann ich tun, um das zu beheben?Wie kann ich zwei Wörter vergleichen, die Unicode-Zeichen enthalten?

public class test3 { 
    public static void main(String[] args) { 
    Scanner s = new Scanner(System.in); 
    String line; 
    System.out.print("Enter string: "); 
    line = s.nextLine(); 
    if(line.equals("aħħar")){ 
     System.out.println("Correct"); 
    } else { 
     System.out.println("Incorrect"); 
    } 
    } 
} 

I have entered the word 'aħħar' and keep getting "Incorrect". 
+0

Bitte fügen Sie den tatsächlichen Code, wo Sie Hilfe benötigen .. aktualisieren Sie Ihre Frage so schnell wie möglich :) –

+1

Equals funktioniert gut in Strings mit Unicode-Zeichen. Sie haben ein Problem damit, wie Sie sie lesen. Z.B. Verwenden Sie den richtigen CharSet? Gibt es nicht druckbare Zeichen, die Sie nicht bemerkt haben (weil sie nicht druckbar sind)? –

+1

@searlea Gegeben, was OP schrieb, können Sie nicht sagen, dass die Referenz, die Sie gegeben haben, ein Duplikat ist. Sieh, was Andy geschrieben hat. – laune

Antwort

0

Der wahrscheinlichste Grund ist, dass die Standard-Kodierung von der Standardeingabe (über Scanner) zum Lesen nicht übereinstimmt, was Ihr Betriebssystem verwendet.

Beachten Sie, dass die Konstruktoren für Scanner einen zusätzlichen Parameter String charsetName für den Codierungstyp haben, der zum Konvertieren von Bytes aus der Datei in zu scannende Zeichen verwendet wird. Fügen Sie den entsprechenden Wert hinzu, der zwischen Betriebssystemen und Installationen variieren kann.

Verwandte Themen