簡體   English   中英

如何在Java中使用BufferedReader反轉希臘字母?

[英]How to reverse Greek letters with BufferedReader in Java?

我是Java的新手,我有這個反向代碼。 我的問題是我該如何使用BufferedReader以便在寫希臘字母(如ξηφαιπασς)時也返回反​​向的希臘字母。 目前,我所得到的只是一些正方形。 第一次我在這里寫問題,所以請您原諒我。

導入java.io. *; //用於I / O
///////////////////////////////////////////////////// //////////////
StackX類
{
private int maxSize;
私有char [] stackArray;
私人int頂層;
// ------------------------------------------------ ------------- public StackX(int max)//構造函數
{
maxSize = max;
stackArray = new char [maxSize];
頂部= -1;
}
// ------------------------------------------------ -------------

  public char pop() // take item from top of stack { return stackArray[top--]; } //-------------------------------------------------------------> public boolean isEmpty() // true if stack is empty { return (top == -1); } //------------------------------------------------------------- } // end class StackX //////////////////////////////////////////////////////////////// class Reverser { private String input; // input string private String output; // output string > public Reverser(String in) // constructor { input = in; } //-------------------------------------------------------------> public String doRev() // reverse the string { int stackSize = input.length(); // get max stack size StackX theStack = new StackX(stackSize); // make stack for(int j=0; j<input.length(); j++) { char ch = input.charAt(j); // get a char from input theStack.push(ch); // push it } output = ""; while( !theStack.isEmpty() ) { char ch = theStack.pop(); // pop a char, output = output + ch; // append to output } return output; } // end doRev() //-------------------------------------------------------------> } // end class Reverser //////////////////////////////////////////////////////////////// class ReverseApp { public static void main(String[] args) throws IOException { String input, output; while(true) { System.out.print("Enter a string: "); System.out.flush(); input = getString(); // read a string from kbd if( input.equals("") ) // quit if [Enter] break; // make a Reverser Reverser theReverser = new Reverser(input); output = theReverser.doRev(); // use it System.out.println("Reversed: " + output); } // end while } // end main() //------------------------------------------------------------- public static String getString() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in, "UTF8" )); String s = br.readLine(); return s; } //------------------------------------------------------------- } // end class ReverseApp 

將UTF8更改為ISO-8859-7

更改

BufferedReader br = new BufferedReader(new InputStreamReader(System.in, "UTF8" ));

BufferedReader br = new BufferedReader(new InputStreamReader(System.in, "ISO-8859-7"));

我希望這能幫到您

如果我有您的問題,則基本上是在嘗試反轉String,並且您遇到了Unicode字符的問題。 為什么不使用StringBuilder類的reverse()方法進行反轉-

String result=new StringBuilder("ξηφαιπασς").reverse().toString();

您可以使用庫來檢查輸入文本的編碼: http : //code.google.com/p/juniversalchardet/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM