2

このコードに対して 2 つの true の結果が得られるようにしたかったのですが、1 つの false と 1 つの true が得られました。

import java.util.Scanner;

public class KFCG {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        System.out.print("input:");
        System.out.println("你好".contains(console.nextLine()));
        System.out.println("你好".contains("你"));
    }
}

System.out で:

input:你
false
true

次に、システムが「「US-ASCII」文字エンコーディングを使用して一部の文字をマップできない」というプロンプトが表示されたときに、コードを UTF-8 として保存するために「UTF-8 として保存」を選択したことを思い出しました。 「US-ASCII」文字エンコーディングでは想定されていません。」

だから私はコンソールから文字列をUTF-8にエンコードしようとしましたが、それでも私の望みどおりには機能しません:

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Scanner;

public class KFCG {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        System.out.print("input:");
        System.out.println("你好".contains(getUTF8XMLString(console.nextLine())));
        System.out.println("你好".contains("你"));
    }

    private static String getUTF8XMLString(String xml) { 
        StringBuffer sb = new StringBuffer(); 
        sb.append(xml); 
        String xmString = ""; 
        String xmlUTF8= ""; 
        try {
        xmString = new String(sb.toString().getBytes("UTF-8")); 
        xmlUTF8 = URLEncoder.encode(xmString, "UTF-8"); 
        } catch (UnsupportedEncodingException e) {}
        // return to String Formed 
        return xmlUTF8;
    } 
}

System.out で:

input:你
false
true

2つのtrueを取得するにはどうすればよいですか? つまり、コンソールから読み取った漢字と、プログラムまたは .txt ファイル内の漢字をどのように比較できますか?

4

0 に答える 0