📄 output_javasrc.java
字号:
/* Copyright (C) 1999 Free Software Foundation This file is part of libgcj.This software is copyrighted work licensed under the terms of theLibgcj License. Please consult the file "LIBGCJ_LICENSE" fordetails. */package gnu.gcj.convert; /** * Convert Unicode to Ascii with \ u XXXX-escapes. * @author Per Bothner <bothner@cygnus.com> * @date April 1999. */public class Output_JavaSrc extends UnicodeToBytes{ public String getName() { return "JavaSrc"; } // Number of bytes remaining before pending_char has been written. int todo; int pending_char; public int write (char[] inbuffer, int inpos, int inlength) { int start_pos = inpos; int avail = buf.length - count; for (;;) { if (avail == 0) break; switch (todo) { case 1: if (pending_char == '\\') { buf[count++] = (byte) '\\'; avail--; todo = 0; continue; } /* ... else fall through ... */ case 2: case 3: case 4: todo--; int digit = ((int) pending_char >> (todo * 4)) & 0xF; buf[count++] = (byte) Character.forDigit(digit, 16); avail--; continue; case 5: buf[count++] = (byte) 'u'; avail--; todo = 4; continue; default: ; } if (inlength == 0) break; char ch = inbuffer[inpos++]; inlength--; if (ch == '\\') { buf[count++] = (byte) '\\'; pending_char = ch; todo = 1; avail--; } else if (ch < 127) { buf[count++] = (byte) ch; avail--; } else { buf[count++] = (byte) '\\'; pending_char = ch; todo = 5; avail--; } } return inpos - start_pos; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -