📄 numgenerator.java
字号:
package org.zblog.zenghelper.dbtool;
/**
* <br><strong>Z英语学习助手-WordGroup的RSId计算类</strong><br>
* <br>该类主要用于根据word计算出它所对应WordGroup仓库中的RSId,一般是用在查询时,进行快
* 速定位,直接将查询范围缩小700倍或1000倍左右.
* @author <a href="mailto:zcw@zblog.org">朱传伟</a><br>
* <a href="http://www.zblog.org">www.zblog.org</a></p>
* @version <strong>ZEnHelper</strong> Ver 1.0
*/
public class NumGenerator {
private DbTool dt=null;
private static NumGenerator ng=null;
private NumGenerator(){
dt=DbTool.getInstance();
}
/**
* 返回NumGenerator实例
* @return NumGenerator
*/
public synchronized static NumGenerator getInstance(){
if(ng==null)
ng=new NumGenerator();
return ng;
}
/**
* 根据参数String word,以及boolean en是否英文单词标志,计算出这个word所对应的
* WordGroup中的RSId
* <br>En编号范围为:0--(26*26-1)=675
* <br>Cn编号范围为:0--999
* @param cnWord String
* @return int
*/
public int getWordNum(String word,boolean en){
word=word.toLowerCase();
String ts=null;
int c=word.charAt(0);
int result=0;
if(en){
int d=0;
if(word.length()>1){
d=word.charAt(1)-'a';
}
d=(c-'a')*26+d;
if(d>675){
ts=""+d;
d=Integer.parseInt(ts.substring(ts.length()-2));
}
result=d+dt.enFirstId;
}
else{
if(c>999){
ts=""+(c+0);
c=Integer.parseInt(ts.substring(ts.length()-3));
}
result=c+dt.cnFirstId;
}
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -