wordbreakdata.java
来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 392 行 · 第 1/2 页
JAVA
392 行
/*
* @(#)WordBreakData.java 1.8 98/01/12
*
* (C) Copyright Taligent, Inc. 1996 - All Rights Reserved
* (C) Copyright IBM Corp. 1996 - All Rights Reserved
*
* Portions copyright (c) 1996 Sun Microsystems, Inc. All Rights Reserved.
*
* The original version of this source code and documentation is copyrighted
* and owned by Taligent, Inc., a wholly-owned subsidiary of IBM. These
* materials are provided under terms of a License Agreement between Taligent
* and Sun. This technology is protected by multiple US and International
* patents. This notice and attribution to Taligent may not be removed.
* Taligent is a registered trademark of Taligent, Inc.
*
* Permission to use, copy, modify, and distribute this software
* and its documentation for NON-COMMERCIAL purposes and without
* fee is hereby granted provided that this copyright notice
* appears in all copies. Please refer to the file "copyright.html"
* for further important copyright and licensing information.
*
* SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
* THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
* ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
* DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
*
*/
package java.text;
/**
* The WordBreakData contains data used by SimpleTextBoundary
* to determine word breaks.
* @see #BreakIterator
*/
final class WordBreakData extends TextBoundaryData
{
private static final byte BREAK = 0;
private static final byte letter = 1;
private static final byte number = 2;
private static final byte midLetter = 3;
private static final byte midLetNum = 4;
private static final byte preNum = 5;
private static final byte postNum = 6;
private static final byte midNum = 7;
private static final byte preMidNum = 8;
private static final byte blank = 9;
private static final byte lf = 10;
private static final byte kata = 11;
private static final byte hira = 12;
private static final byte kanji = 13;
private static final byte diacrit = 14;
private static final byte cr = 15;
private static final byte nsm = 16;
private static final byte EOS = 17;
private static final int COL_COUNT = 18;
private static final byte SI = (byte)0x80;
private static final byte STOP = (byte) 0;
private static final byte SI_STOP = (byte)SI + STOP;
private static final byte kWordForwardData[] =
{
// brk let num mLe mLN
// prN poN mNu pMN blk
// lf kat hir kan dia
// cr nsm EOS
// 0
STOP, STOP, STOP, STOP, STOP,
STOP, STOP, STOP, STOP, STOP,
STOP, STOP, STOP, STOP, STOP,
STOP, STOP, STOP,
// 1
(byte)(SI+14), (byte)(SI+2), (byte)(SI+3), (byte)(SI+14), (byte)(SI+14),
(byte)(SI+5), (byte)(SI+14), (byte)(SI+14), (byte)(SI+5), (byte)(SI+6),
(byte)(SI+4), (byte)(SI+10), (byte)(SI+11), (byte)(SI+12), (byte)(SI+9),
(byte)(SI+13), (byte)(1), SI_STOP,
// 2
SI_STOP, (byte)(SI+2), (byte)(SI+3), (byte)(SI+7), (byte)(SI+7),
SI_STOP, SI_STOP, SI_STOP, (byte)(SI+7), SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, (byte)(2), SI_STOP,
// 3
SI_STOP, (byte)(SI+2), (byte)(SI+3), SI_STOP, (byte)(SI+8),
SI_STOP, (byte)(SI+14), (byte)(SI+8), (byte)(SI+8), SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, (byte)(3), SI_STOP,
// 4
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP,
// 5
SI_STOP, SI_STOP, (byte)(SI+3), SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, (byte)(5), SI_STOP,
// 6
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, (byte)(SI+6),
(byte)(SI+4), SI_STOP, SI_STOP, SI_STOP, SI_STOP,
(byte)(SI+13), (byte)(6), SI_STOP,
// 7
STOP, (byte)(SI+2), STOP, STOP, STOP,
STOP, STOP, STOP, STOP, STOP,
STOP, STOP, STOP, STOP, STOP,
STOP, (byte)(7), STOP,
// 8
STOP, STOP, (byte)(SI+3), STOP, STOP,
STOP, STOP, STOP, STOP, STOP,
STOP, STOP, STOP, STOP, STOP,
STOP, (byte)(8), STOP,
// 9
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, (byte)(SI+10), (byte)(SI+11), SI_STOP, (byte)(SI+9),
SI_STOP, (byte)(9), SI_STOP,
// 10
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, (byte)(SI+10), SI_STOP, SI_STOP, (byte)(SI+10),
SI_STOP, (byte)(10), SI_STOP,
// 11
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, (byte)(SI+11), SI_STOP, (byte)(SI+11),
SI_STOP, (byte)(11), SI_STOP,
// 12
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, (byte)(SI+12), SI_STOP,
SI_STOP, (byte)(12), SI_STOP,
// 13
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
(byte)(SI+4), SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP,
// 14
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, SI_STOP, SI_STOP, SI_STOP, SI_STOP,
SI_STOP, (byte)(14), SI_STOP
};
private static final WordBreakTable kWordForward =
new WordBreakTable(COL_COUNT, kWordForwardData);
private static final byte kWordBackwardData[] =
{
// brk let num mLe mLN
// prN poN mNu pMN blk
// lf kat hir kan dia
// cr nsm EOS
// 0
STOP, STOP, STOP, STOP, STOP,
STOP, STOP, STOP, STOP, STOP,
STOP, STOP, STOP, STOP, STOP,
STOP, STOP, STOP,
// 1
(byte)(SI+6), (byte)(SI+2), (byte)(SI+3), (byte)(SI+4), (byte)(SI+5),
(byte)(SI+6), (byte)(SI+7), (byte)(SI+7), (byte)(SI+5), (byte)(SI+8),
(byte)(SI+8), (byte)(SI+9), (byte)(SI+10), (byte)(SI+12), (byte)(SI+11),
(byte)(SI+8), (byte)(1), STOP,
// 2
STOP, (byte)(SI+2), (byte)(SI+3), (byte)(4), (byte)(4),
STOP, STOP, STOP, (byte)(4), STOP,
STOP, STOP, STOP, STOP, STOP,
STOP, (byte)(2), STOP,
// 3
STOP, (byte)(SI+2), (byte)(SI+3), STOP, (byte)(7),
SI_STOP, STOP, (byte)(7), (byte)(SI+7), STOP,
STOP, STOP, STOP, STOP, STOP,
STOP, (byte)(3), STOP,
// 4
STOP, (byte)(SI+2), STOP, STOP, STOP,
STOP, STOP, STOP, STOP, STOP,
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?