利用ASCII码生成指定规则的字符串
/**
* 上送终端编号的后两位生成规则 总共可以生成 (36*36-1)1295个编号
* 01...09 0A...0Z
* 10...19 1A...1Z
* ...............
* A0...A9 AA...AZ
* ...............
* Z0...Z9 ZA...ZZ
*/
public String generateNumber(String number){
String ret=number.substring(0,number.length()-2); //取前半部分
number=number.substring(number.length()-2); //取最后两位
// 取第一个字符
char ch1=number.charAt(0);
char ch2=number.charAt(1);
//生成第二个字符串
if(number.equals("ZZ")){ //达到上限 ZZ,不使用生成规则生成
return null;
}
if(ch2<'Z'){
//因为9的下一个字母是A
if(ch2=='9'){
ch2='A';
}else{
ch2+=1;
}
ret=ret+""+ch1+ch2;
}else{
//第一个字符加1;第二个字符为0
if(ch1=='9'){
ch1='A';
}else{
ch1+=1;
}
ret=ret+""+ch1+0;
}
return ret;
}
public static void main(String[] args){
String[] arr={"01","09","0A","0Y","0Z","90","99","9B","9Z","A0","AZ","Z0","ZY","ZZ"};
for(String arr1:arr){
System.out.println("--->:"+test(arr1));
}
}
/**
* 生成上送终端编号的后两位规则 总共可以生成 (62*62-1)3843个编号
* 01...09 0A...0Z 0a...0z
* 10...19 1A...1Z 1a...1z
* .......................
* A0...A9 AA...AZ Aa...Az
* .......................
* Z0...Z9 ZA...ZZ Za...Zz
* a0...a9 aA...aZ aa...az
* .......................
* z0...z9 zA...zZ za...zz
*/
public String generateNumber(String number){
String ret=number.substring(0,number.length()-2); //取前半部分
number=number.substring(number.length()-2); //取最后两位
// 取第一个字符
char ch1=number.charAt(0);
char ch2=number.charAt(1);
//生成第二个字符串
if(number.equals("zz")){ //达到上限 zz,不使用生成规则生成
return null;
}
if(ch2<'z'){
//因为9的下一个字母是A
if(ch2=='9'){
ch2='A';
} else if(ch2=='Z'){
ch2='a';
}else{
ch2+=1;
}
ret=ret+""+ch1+ch2;
}else{
//第一个字符加1;第二个字符为0
if(ch1=='9'){
ch1='A';
}else if(ch1=='Z'){
ch1='a';
}else{
ch1+=1;
}
ret=ret+""+ch1+0;
}
return ret;
}
利用ASCII码生成指定规则的字符串的更多相关文章
- 利用ascii码生成26个英文字母
<script> let a = ""; for (var i = 65; i < 91; i++) { a += String.fromCharCode(i); ...
- 随机生成指定长度字符字符串(C语言实现)
相关函数 srand(), rand()头文件#include<stdlib.h> 定义函数 int rand(void) 函数说明 rand()会返回一随机数值,范围在0至RAND_MA ...
- julia生成指定格式的字符串.jl
julia生成指定格式的字符串.jl """ julia生成指定格式的字符串.jl http://bbs.bathome.net/thread-39829-1-1.htm ...
- php随机生成指定长度的字符串 可以固定数字 字母 混合
php 生成随机字符串 可以指定是纯数字 还是纯字母 或者混合的. 可以指定长度的. function rand_zifu($what,$number){ $string=''; for($i = 1 ...
- [Javascript]利用当前时间生成yyyymmddhhmmss这样的字符串
function pad2(n) { return n < 10 ? '0' + n : n } function generateTimeReqestNumber() { var date = ...
- 字符串/16进制/ASCII码的转换
1 /// <字符串转16进制格式,不够自动前面补零> 2 /// 假设文本框里面填写的是:01 02 03 04 05 06 3 /// Str获取的是01 02 03 04 05 06 ...
- 什么是ASCII码?
㈠定义 ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现 ...
- ASCII码(转)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧 ...
- ASCII码
ASCII(pronunciation: /ˈæski/ ASS-kee,American Standard Code for Information Interchange,美国信息交换标准代码)是 ...
随机推荐
- HttpServlet源码分析
1.HttpServlet的用法 提供了创建Http Servlet的抽象类,通过实现此类定义自己的Servlet 2.HttpServlet是否是线程安全 先说结论:HttpServlet不是线程安 ...
- Python 可迭代的对象、迭代器和生成器
迭代是数据处理的基石.扫描内存中放不下的数据集时,我们要找到一种惰性获取数据项的方式,即按需一次获取一个数据项.这就是迭代器模式(Iterator pattern). p.p1 { margin: 0 ...
- DRAM(MT48LC8M32B2)学习
Micron公司,型号为MT48LC8M32B2的DRAM,其86PIN的 TSOP封装引脚定义 Micron公司,型号为MT48LC8M32B2的DRAM,其86PIN的 TSOP封装引脚定义如上图 ...
- python的eval函数
eval函数介绍:将字符串str当成有效的表达式来求值并返回计算结果.语法: eval(source[, globals[, locals]]) -> value参数: source:一个Pyt ...
- JAVA基础----持续更新
1.基本数据类型 - 整数型:byte short int long 默认为int 计算时需要转换 - 浮点型:float double 默认为double - 布 ...
- SQL分组查询
把数据分成多个逻辑组,以便能对每个组的数据进行操作,对每个组进行聚集计算. 1.创建分组 分组是在SELECT语句的GROUP BY子句中建立的 例子: SELECT vendId ...
- Lucene的配置及创建索引全文检索
Lucene 是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言).Lucene ...
- JavaSE(八)之集合概述
前几天其实一直在学习关于linux的内容和kvm虚拟化的知识.今天有时间来回顾一下集合相关的知识,接下来我将带大家一起来回顾一起集合关联的知识. 不要辜负自己花费时间做的事情,只有用心才能得到真心的回 ...
- wpf创建用户控件(计时器控件)
在vs中新增用户控件 前台xaml如下代码: <UserControl x:Class="Zh.SelfServiceEquipment.UI.ZhControls.CountDown ...
- 下拉菜单效果和tab选项卡切换
//下拉菜单效果和tab选项卡切换. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...