我想創建一個程序來打印一個隨機的阿拉伯字符。然後用戶輸入程序驗證的羅馬字形式。該程序重複此過程。如何以原始形式打印非拉丁文字符?
而不是打印出原來的字符,我的程序打印出來?。你能找出問題嗎?
import java.lang.Math;
import java.util.Scanner;
class Arabic_Randomizer{
public static void main(String[] args){
//the variables for
// char [] EngLetterEqv = {'a','b','g','d','h','w','z','h','t','y','k','l','m','n','s','','','','','','','','','',''};
char [] achar = {'غ' , 'ظ' , 'ض' , 'ذ' , 'خ' , 'ث' , 'ت' , 'ش' , 'ر' , 'ق' , 'ص' , 'ف' , 'ع' , 'س' , 'ن' , 'م' , 'ل' , 'ك' , 'ي' , 'ط' , 'ح' , 'ز' , 'و' , 'ه' , 'د' , 'ج' , 'ب' , 'ا' };
String [] ason = { "alif" , "baa" , "jim" , "dal" , "ha(2)", "wow" , "zai" , "ha(1)" , "ta" , "ya" , "kaf" , "lam" , "miim" , "noon" , "sin" , "'ayn" , "faa" , "sad" , "qaf" , "raa" , "scin" , "taa" , "tha" , "kai" , "dhal" , "Dad" , "za", "ghayn"};
int randr = 0;
int oi = 1;
String ans = null;
Scanner scan = new Scanner(System.in);
// The "Game Loop"
while (oi != 0){
//Randomizer
randr = (int) Math.random()*27;
if (randr == 28){randr--;}
//Selector & output
System.out.println("What letter is this "+ achar[randr]);
ans = scan.nextLine();
//Check
if (ans.equals(ason[randr])){System.out.println("Correnct");}
else{System.out.println("Wrong");}
//
System.out.println("Please press 0 then enter if you would like to stop, press any other integer if you would like to continue; ");
oi = scan.nextInt();
}
}
}
我在DrJava編碼;這可能是問題嗎?我對Java和編程一般都很陌生,所以請使用簡單的響應。
我不知道DrJava有擴展字符集有很好的支持,如果在所有。您可能需要使用Eclipse等功能更強大的工具,並將控制檯和源的編碼設置爲UTF-8。 – msandiford
修復了語法錯誤和解釋流程。 – Prune
我不知道DrJava是什麼,但是如果你可以指定VM參數,可以試試'-Dfile.encoding = UTF-8',看看是否有幫助。 –