利用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,美国信息交换标准代码)是 ...
随机推荐
- 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——解码篇:(一)用ffmpeg解码视频
一.概述 myRTSPClient(RTSPClient)获取音视频数据之后,接下来的工作便是将音视频数据交给解码器去解码(ffmpeg),ffmpeg解码之后于是便有了呈现在终端用户(USER)面前 ...
- easyUI datagrid 列宽自适应(简单 图解)(转)
响应数据格式: easyUI在html代码中结构: 发现了什么没有,我们的表头其实是一个td在td中有一个属性field那么我们就可以获得了; 以下就是自适应代码: //添加事件 function c ...
- JSON异步及跨域
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CNAME关联githubPage域名及中文域名,创建个人网站
对于前端开发来说,部署一个自己的个人网站部署服务器等比较麻烦,如果只是做静态页面的展示GitHubPage完全够用,而且有300M免费的空间,完全满足需求. 首先你要有GitHubPage项目,具体怎 ...
- Ecshop商品描述上传中文名图片无法显示解决方法
在后台上传商品图片的时候,如果你选择一个中文名称的图片,那么上传后会产生乱码,导致图片显示不出来. 下面说一种解决办法:使用"年月日时分秒 + 6个随机字符"做为文件名,如 201 ...
- 1_NAT模式和桥接模式下的网络配置
相信当你看到这篇文章时,你一定对linux的桥接模式和NAT模式有所了解,所以你应该是能看懂这篇文件的,希望对你有所帮助,figthing ! 一.桥接模式:虚拟机和主机是连在同一个路由下的. ...
- Openfire分析之一:Openfire与XMPP协议
引言 上帝说,要有光,于是就有了光. 有点玄. 如果将时光回溯无数岁月,到几百万年的蛮荒时代,人类史上第一次发生信息交换,会是什么样子?是转一下脑袋,还是眨一下眼? 但不管是什么形式,于是有了信息, ...
- JAVA中反射机制五(java.lang.reflect包)
一.简介 java.lang.reflect包提供了用于获取类和对象的反射信息的类和接口.反射API允许对程序访问有关加载类的字段,方法和构造函数的信息进行编程访问.它允许在安全限制内使用反射的字段, ...
- 一次由SELinux引起的ssh公钥认证失败问题
一直使用CentOS作为服务器系统,平时装完系统以后都是建立publickey认证机制,然后关闭密码认证.原本是一件轻车熟路毫无压力的事情,不想前日新装一台机器按照正常配置以后居然使用publicke ...
- MPLS LDP随堂笔记2
前一天排错 Acl 1 匹配所有ospf的数据包 (目的 ospf建立邻居关系 传递路由条目) 2 放行UDP报文 让LDP邻居能互相收发HELLO包 4 放行TCP报文 让LDP邻居能够建立TCP会 ...