字符串中只能有且只有一处连续的数字不同,非数字必须相同(前面有不同数字,下标可以不同,否则下标必须相同。),

A001B001 与A002B001  OK

A001B001 与A002B002  NO 两处不同

A001B001 与A02B001  OK   001与02长度可以不同

001           与002           OK

B01          与B0000002    OK

B001B01 与B002A01    NO   B与A是非数字,必须相同

B001B01 与B2B01        OK   B与B的下标可以不同,因为前面有不同的数字,

B001B01 与B001A02    NO   B与A是非数字,因为前面没有不同的数字,下标必须相同,

public class VersionName {public static void main(String[] args) {String[] str1 = { "B001", "B001N001", "B001N001","B001N001", "A001BBB001", "A002B",   "A001BBB","A001B000","A001BBB","A001B0002","001AA001","AAA" ,"0001","000","AAA","", ""};String[] str2 = { "B002", "B002N001", "B01N001", "B01N002",  "A002BBB002", "A001BBB", "A001B",  "A001B000004","A001BBB", "A001B01",  "01AA001", "AAA" ,"0002","000","AAB","1",""};VersionName version = new VersionName();for (int i = 0; i < str1.length; ++i) {version.getDifferent(str1[i], str2[i]);}}public String getDifferent(String versionA, String versionB) {System.out.print(versionA + "与" + versionB+":");boolean isDifferent = false;int beginA = -1, beginB = -1, lengthA = versionA.length(), lengthB = versionB.length();String numberA = "", numberB = "";int i = 0, j = 0, index = 0;for (; i < lengthA && j < lengthB;) {char ch = versionA.charAt(i);if (Character.isLetter(ch)) {if (ch == versionB.charAt(j)) {++i;++j;} else {System.out.println(ch + "字母不同" + versionB.charAt(j)+false);return null;}} else {beginA = i;beginB = j;while ((++i) < lengthA && Character.isDigit(versionA.charAt(i))) {}while ((++j) < lengthB && Character.isDigit(versionB.charAt(j))) {}if (i >= lengthA) {i = lengthA;}if (j >= lengthB) {j = lengthB;}String numberTemA = versionA.substring(beginA, i);String numberTemB = versionB.substring(beginB, j);if (numberTemA.equals(numberTemB)) {} else {if (isDifferent) {System.out.println("不止一处不同" + numberA + "," + numberB + "," + numberTemA + "," + numberTemB+false);return null;} else {isDifferent = true;index = beginA;numberA = numberTemA;numberB = numberTemB;}}}}if (isDifferent && i >= versionA.length() && j >= versionB.length()) {String tem = index + ":" + numberA + ":" + numberB;System.out.println(" " + tem + " " + true);return tem;} else {System.out.println(" " + false);return null;}}
}

  

转载于:https://www.cnblogs.com/duange/p/8825108.html

判断字符串只能有且只有一处连续数字不同相关推荐

  1. 中判断字符串是否为空_java中的数字以及如何判断字符串是不是数字

    01 前言 数字是计算机科学的根本,那么java中数字是怎样来表示呢?规则又是怎样呢?今天我们来探讨一下这个话题.数字在某些领域经常用字符串来进行表示和传递.那么我们可以从判断java中一个字符串是否 ...

  2. JS判断字符串中的内容是否为纯数字

    var str1 = "123" var str2 = "123测试文字"// 将字符串转为数字(不能使用parseInt,parseInt会忽略字符串中的非数 ...

  3. 学习-Java字符串之正则表达式之元字符之判断字符串是否符合规则

    任务描述 本关任务:接收给定的字符串,如果该字符串同时符合以下要求,请输出该字符串. 1.字符串由三个字符组成: 2.字符串以数字开头: 3.字符串以小写字母结束. 相关知识 正则表达式的概念 正则表 ...

  4. C++判断字符串中是否有中文

    参考: http://baike.baidu.com/view/391899.htm?fr=aladdin http://baike.baidu.com/view/1204863.htm http:/ ...

  5. java判断字符串是否为数字的几种方式

    一,使用StringUtils工具类: 通过StringUilts工具包进行判断: org.apache.commons.lang3.StringUtils提供了丰富的字符串解析的工具包,其中isNu ...

  6. python 判断字符串是否包含另一个字符串_强烈推荐:Python字符串(string)方法整理(一)...

    作者:骏马金龙 原文地址: https://www.cnblogs.com/f-ck-need-u/p/9127699.html python中字符串对象提供了很多方法来操作字符串,功能相当丰富. p ...

  7. 判断字符串是不是数字

    在网上看到一篇关于判断字符串是数字的函数, 感觉思路不错, 代码简洁, 我转载一下: 代码 public static bool isnum(string xtext) //判断字符串是不是数字    ...

  8. python3 判断字符串 是否为字母 数字 浮点数 整数

    str为字符串s为字符串 str.isalnum() 所有字符都是数字或者字母 str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是数字 str.isspace() ...

  9. Java判断字符串是否是整数

    character.isDigit() isDigit函数只能判断一个字符,判断字符串需要对所有字符分别判断 Integer.parseInt()函数可以直接转换,Integer.parseInt() ...

最新文章

  1. 大学计算机课英语心得体会,关于计算机网络辅助大学英语教学的思考学习心得...
  2. 【学习笔记】4、Jupyter Notebook闪退问题
  3. 【Leetcode】EASY题解....ing python
  4. boost::mp11::mp_all_of_q相关用法的测试程序
  5. js中双感叹号_JavaScript中双叹号(!!)作用
  6. python工控怎么样_搞工控不了解python,好比雄鹰断了翅膀,理由在这里!
  7. python中again函数怎么用_《“笨方法”学python 》 once again 20170729
  8. 转行学编程,女孩子适合web前端还是Java?
  9. WEB测试—功能测试
  10. C++中的XML配置文件编程经验
  11. C语言 static静态变量
  12. 爬虫实战(一)之爬取房天下新房数据
  13. 开心群管 (云机器人群管)网页管理QQ群
  14. vulnhub——XXE练习
  15. sublime-笔记
  16. 卷积神经网络残差计算
  17. [附源码]Java计算机毕业设计SSM电脑配件仓储后台管理系统
  18. 抓铁有力榜:踏石有印,抓铁留痕
  19. 直销系统开发|直销双轨制模式详解
  20. 在vue项目中引入JQuery

热门文章

  1. 数据结构与算法学习笔记02-双向链表
  2. map函数的用法python,详解Python map函数及Python map()函数的用法
  3. Ubuntu MySQL性能_入门系列之在Ubuntu上使用MySQL设置远程数据库优化站点性能
  4. 帆软报表重要Activator之DesignerInitActivator之二
  5. dell mobile connect 兑换码_剑与远征万圣节兑换码是什么?剑与远征2020万圣节兑换码使用解析...
  6. mysql 常用计算函数_关于MySQL常用的一些函数以及一些计算
  7. ue4打包安卓发送udp报文_内核udp报文截取、修改和发送
  8. echart高级使用_Vue:在Vue中使用echarts
  9. java代码建立删除vpn_Java类集综合练习——信息管理(增、删、改、查)
  10. Python利用openpyxl来操作Excel(一)