hexnumberformat.java
来自「一个用java写的mail.里面的代码值得我们去研究!学习。」· Java 代码 · 共 130 行
JAVA
130 行
/*** $Id: HexNumberFormat.java,v 1.3 2001/05/07 12:35:09 kunugi Exp $**** Copyright (c) 2000-2001 Jeff Gay** on behalf of ICEMail.org <http://www.icemail.org>** Copyright (c) 1997-2000 by Timothy Gerard Endres** ** This program is free software.** ** You may redistribute it and/or modify it under the terms of the GNU** General Public License as published by the Free Software Foundation.** Version 2 of the license should be included with this distribution in** the file LICENSE, as well as License.html. If the license is not** included with this distribution, you may find a copy at the FSF web** site at 'www.gnu.org' or 'www.fsf.org', or you may write to the** Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139 USA.**** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR** REDISTRIBUTION OF THIS SOFTWARE. */package org.icemail.text;import java.text.FieldPosition;import java.text.Format;import java.text.ParseException;import java.text.ParsePosition;/** * The HexNumberFormat class implements the code necessary * to format and parse Hexidecimal integer numbers. * * @see java.text.NumberFormat */public class HexNumberFormat extends Format{ private static char[] lowChars; private static char[] uprChars; private int count; private String pattern; private static char[] hexChars; static { HexNumberFormat.lowChars = new char[20]; HexNumberFormat.uprChars = new char[20]; HexNumberFormat.uprChars[0] = HexNumberFormat.lowChars[0] = '0'; HexNumberFormat.uprChars[1] = HexNumberFormat.lowChars[1] = '1'; HexNumberFormat.uprChars[2] = HexNumberFormat.lowChars[2] = '2'; HexNumberFormat.uprChars[3] = HexNumberFormat.lowChars[3] = '3'; HexNumberFormat.uprChars[4] = HexNumberFormat.lowChars[4] = '4'; HexNumberFormat.uprChars[5] = HexNumberFormat.lowChars[5] = '5'; HexNumberFormat.uprChars[6] = HexNumberFormat.lowChars[6] = '6'; HexNumberFormat.uprChars[7] = HexNumberFormat.lowChars[7] = '7'; HexNumberFormat.uprChars[8] = HexNumberFormat.lowChars[8] = '8'; HexNumberFormat.uprChars[9] = HexNumberFormat.lowChars[9] = '9'; HexNumberFormat.uprChars[10] = 'A'; HexNumberFormat.lowChars[10] = 'a'; HexNumberFormat.uprChars[11] = 'B'; HexNumberFormat.lowChars[11] = 'b'; HexNumberFormat.uprChars[12] = 'C'; HexNumberFormat.lowChars[12] = 'c'; HexNumberFormat.uprChars[13] = 'D'; HexNumberFormat.lowChars[13] = 'd'; HexNumberFormat.uprChars[14] = 'E'; HexNumberFormat.lowChars[14] = 'e'; HexNumberFormat.uprChars[15] = 'F'; HexNumberFormat.lowChars[15] = 'f'; } static public final HexNumberFormat getInstance() { return new HexNumberFormat( "XXXXXXXX" ); } public HexNumberFormat( String pattern ) { super(); this.pattern = pattern; this.count = pattern.length(); this.hexChars = ( pattern.charAt(0) == 'X' ? HexNumberFormat.uprChars : HexNumberFormat.lowChars ); } public String format( int hexNum ) throws IllegalArgumentException { FieldPosition pos = new FieldPosition(0); StringBuffer hexBuf = new StringBuffer(8); format( new Integer( hexNum ), hexBuf, pos ); return hexBuf.toString(); } public StringBuffer format( Object hexInt, StringBuffer appendTo, FieldPosition fieldPos ) throws IllegalArgumentException { char[] hexBuf = new char[16]; int end = fieldPos.getEndIndex(); int beg = fieldPos.getBeginIndex(); int hexNum = ((Integer) hexInt).intValue(); for ( int i = 7 ; i >= 0 ; --i ) { hexBuf[i] = this.hexChars[ (hexNum & 0x0F) ]; hexNum = hexNum >> 4; } for ( int i = (8 - this.count) ; i < 8 ; ++i ) { appendTo.append( hexBuf[i] ); } return appendTo; } public int parse( String source ) throws ParseException { throw new ParseException( "unimplemented!", 0 ); } public Object parseObject( String source, ParsePosition pos ) { return null; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?