surrogatetest.java

来自「This is a resource based on j2me embedde」· Java 代码 · 共 78 行

JAVA
78
字号
/* * @(#)SurrogateTest.java	1.7 06/10/10 * * Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved.   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER   *    * This program is free software; you can redistribute it and/or   * modify it under the terms of the GNU General Public License version   * 2 only, as published by the Free Software Foundation.    *    * This program is distributed in the hope that it will be useful, but   * WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   * General Public License version 2 for more details (a copy is   * included at /legal/license.txt).    *    * You should have received a copy of the GNU General Public License   * version 2 along with this work; if not, write to the Free Software   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA   * 02110-1301 USA    *    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa   * Clara, CA 95054 or visit www.sun.com if you need additional   * information or have any questions.  * */import sun.io.*;public class SurrogateTest{    CharToByteISO8859_1 converter = null;    byte byteArr[] = new byte[10];    char charArr[] = {'a', 'b', 'c', 'd', 'e',                       '\uD800', '\uDC00', 'f', 'g', 'h'};    public static void main(String args[]) {        new SurrogateTest().run();    }    public void run() {        int len = 0;        try {            converter =                (CharToByteISO8859_1)CharToByteConverter.getConverter("8859_1");        } catch (Exception e) {            System.out.println(e.toString());        }                // Convert from 'a' to '\uD800' (high surrogate).         doConvert(1, 0, 6, 0, 10);        // Convert from '\uDC00' (low surrogate) to 'h'.        // This is a legal UTF16 sequence.        doConvert(2, converter.nextCharIndex(), 10, converter.nextByteIndex(), 10);        byteArr = new byte[10];        doConvert(3, 0, 10, 0, 10);    }    void doConvert(int i, int inOff, int inEnd, int outOff, int outEnd) {        int len=0;        System.out.println("Case "+i+": inOff="+inOff+", inEnd="+inEnd+                             ", outOff="+outOff+", outEnd="+outEnd);        try {            len = converter.convert(charArr, inOff, inEnd, byteArr, outOff, outEnd);        } catch (Exception e) {            System.out.println(e.toString());        } finally {            for (int j=0; j<10; j++) {                System.out.println("byteArr["+j+"] = "+byteArr[j]);            }            System.out.println("Length of conversion from char to byte = " + len+"\n");        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?