Java后台如何判断一串数字是否连续,连续合并数字

例如:Integer[] NoNum ={1,2,3,5,7,8,9,10,13}

        输出的结果为 1-3,5,7-10,13
0

2个回答

这是递归的做法。

 public class Main {
    public static void main(String[] args) {
        Integer[] NoNum = {1, 2, 3, 5, 7, 8, 9, 10, 13};
        String result = convert(NoNum, 0);
        System.out.println(result.substring(0, result.length() - 1));
    }

    public static String convert(Integer[] ints, int index) {
        int end = index;
        if (ints.length == index) {//结束条件,遍历完数组
            return "";

        } else {
            for (int i = index; i < ints.length; i++) {
                if (i < ints.length - 1) {
                    if (ints[i] + 1 == ints[i + 1]) {
                        end = i;
                    } else {
                        if (i > index)
                            end = end + 1;
                        break;
                    }
                } else {
                    if (end == ints.length - 2) {
                        end = ints.length - 1;
                        break;
                    }
                }
            }
            if (index == end)//相等说明不连续
                return ints[index] + "," + convert(ints, end + 1);
            else//连续
                return ints[index] + "-" + ints[end] + "," + convert(ints, end + 1);

        }

    }
}

0
JFree_Wolf
JFree_Wolf 回复qq_41877813: 第一个页面的dom传递到第二个页面,第二个页面写值点击确定后,修改之前传过来的dom中的某个区域值,这个值就是第二个页面传过来的。第一个页面再来操作这个值
8 个月之前 回复
qq_41877813
qq_41877813 回复JFree_Wolf: java前台js怎么从第一个页面获取值传到第二个页面,并不刷新第二个页面
8 个月之前 回复
JFree_Wolf
JFree_Wolf 回复qq_41877813: 发了。
8 个月之前 回复
qq_41877813
qq_41877813 那你也发我吧,谢谢啦
8 个月之前 回复

这个简单,写一个状态机搞定:

state 表示状态,0表示开始状态或者前面的是独立的
1表示在连续之中
2表示最后一个
状态迁移图

图片说明

class Untitled {
    public static void main(String[] args) {
        int[] NoNum ={1,2,3,5,7,8,9,10,13};
        int state = 0;
        String result = "";
        for (int i = 0; i < NoNum.length; i++)
        {
            if (i == NoNum.length - 1) state = 2;
            if (state == 0) 
            {
                if (NoNum[i + 1] == NoNum[i] + 1) 
                {
                    result += Integer.toString(NoNum[i]);
                    result += "-";
                    state = 1;
                }
                else
                {
                    result += Integer.toString(NoNum[i]);
                    result += ",";
                }
            }
            else if (state == 1)
            {
                if (NoNum[i + 1] != NoNum[i] + 1) 
                {
                    result += Integer.toString(NoNum[i]);
                    result += ",";
                    state = 0;
                }
            }
            else
            {
                result += Integer.toString(NoNum[i]);
            }
        }
        System.out.println(result);
    }
}

上机验证结果:
1-3,5,7-10,13

0
caozhy
weixin_45841714 回复qq_41877813: 这个问题采纳了我的回答,重开一个问题,回答你。
8 个月之前 回复
qq_41877813
qq_41877813 回复qq_41877813: java前台js怎么从第一个页面获取值传到第二个页面,并不刷新第二个页面
8 个月之前 回复
qq_41877813
qq_41877813 谢谢大佬
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
给一串数字,判断是否连续
题在标题,思路在代码 #include int main() { int arr[] = { 8 , 3, 2, 6, 4, 5, 3, 7 }; //一组任意数字 int sz = sizeof(arr) / sizeof(arr[0]); //求任意数字数量 int Min = arr[0]; //假设第一个数字为最小 int count = 0; //统计数字排列
判断是否是连续数字
/** * 是否是连续数字 * * @param numOrStr * @return */ public static boolean isOrderNumeric(String numOrStr) { boolean flag = true; for (int i = 0; i < numOrStr.length(); i++) { if (i > 0) {
判断是否为连续的数字拼接而成的字符串
public static void main(String[] args) { //此种情况已经明确是数字拼接而成,如果可能含有非数字的情况,需要先判断是否全部为数字 String str1= "00001,00002"; String[] split = str1.split(","); for (int i = 0; i < s
用java判断一个int数组是否连续
怎么用java判断一个int数组是否连续 废话不多说,直接上代码。 public static boolean getArr(int[] arr){ if (arr.length<3) { return false; } boolean b = false; for(int i =1;i<arr.length-1;i++){ if (arr[i]*2 !=
给你一组随机的数字,你需要判断这组数是否是连续的做法?
1.因为给的是随机数,所以需要剔除重复的数字,然后排序 2.判断是否连续的,就是1 2 3 4 5这样子是否连续 3.因为数组已经是没有重复数据,并且排序好的一组数,所以找到最大的和最小的公式为:(最大-最小)/(数组长度-1)=1 根据这个公式就可以判断是否连续了 还有一种最笨的方法。通过for循环,得到下一个数-当前数=1 ,这种做法就是如果全部连续的,那就需要在for循环中执行数组长
java正则表达式判断一个字符串包含连续数字
判断一个字符串是否包含连续数字 [color=red]String reg = &quot;^.*\\d{15}.*$&quot;; String text = &quot;{\&quot;words\&quot;:\&quot;注册号460106600543629\&quot;&quot;; if(text.matches(reg)&amp;&amp;text.contains(&quot;注册号&quot;)){ System.out.println(&quot;包含15
php查出连续一组数字中缺少的那个数字
原文地址:侯哥小博http://37blog.com/?p=147 function less($start,$end,$arr){ $length=count($arr); if($end-$start+1==$length){ return "不缺少值"; } if($start!=$arr[0]){ return
判断一组数据连续性,将连续数据取最小和最大进行合并
最近工作中遇到对报表数据连续的项进行合并的功能,采用了递归的方法进行判断,简单的demo: public static String convertContinue(String[] ints, int index) { int end = index; //结束条件,遍历完数组 if (ints.length == index) { return &quot;&quot;...
判断时间或者数字是否连续
一、判断时间数组是否连续(格式:yyyyMMdd) public static String convert(String[] ints, int index) { int end = index; if (ints.length == index) {//结束条件,遍历完数组 return &quot;&quot;; } else { for (int...
js如何判断一组数字是否连续,得到一个临时数组[[3,4],[13,14,15],[17],[20],[22]];
var arrange = function(arr){ var result = [], temp = []; arr.sort(function(source, dest){ return source - dest; }).concat(Infinity).reduce(function(source, dest){ ...
如何判断一个数组中数值是否连续相邻
package java程序员面试笔试宝典; import java.util.Arrays; public class 题8_5_17判断相邻数组中数值是否连续 { public static void main(String[] args) { int[] a={0,0,10,0,6}; System.out.println(isContinue_0(a)); } pu...
提取字符串中的数据,判断数字是否为连续递增
Co ///         /// 传入的值是否是连续的数字(可重复,但必须是连续的数字)         ///         /// 1,2,3,4,5,6         ///         public static bool GetStrOrder(string str)         {             string[] arry = s
判断一串数字是否连续,连续合并数字
现有一串数字,例如:rn69-78,79-88,89-95,96-102,103,104,131-134,135-149,150-153,190,242-243rn需要转变为以下结果:rn69-104,131-153,190,242-243rnrn需要如何处理呢?rnrn初步想通过数组实现,先用split分组,得到各个数字组合,然后再判断前后2个数字,rn但是循环判断时老是出错,得不到正确结果,请各位帮帮忙,谢谢!rn
oracle 判断组内数据是否连续,即 等比例连续
--以grid为组,按year大小排序  select t4.*,t4.year-lag(t4.year,1,t4.year) over (partition by t4.grid order by t4.year asc) flag from 表名 t4 lag()函数取前一次记录。 当前年份t4.year 减去 上一条记录的年份 lag(t4.year,1,t4.y
数组-----判断一个数组中的数是否连续
-
java判断字符串不是相同数字或者相同字母?不能全是连续数字?(密码简易规则校验)...
/** * 不能全是相同的数字或者字母(如:000000、111111、aaaaaa) * @param str str.length()&gt;0 * @return 全部相同返回true */ public static boolean equalStr(String numOrStr){ boolean flag = true; char str = nu...
判断一个数组中的数字是否连续
问题描述:一个数组中若干个非负整数是否连续,其中0可以代表任何数字 Input: 8 1 3 5 0 0 0 6 7 Output: this array is continue 算法实现: #include using namespace std; void sort(int* a,int m) { int temp=0; for (int i=0;i {
(Python)判断列表的连续数字范围并分块
情况一:列表中的数字是连续数字(从小到大) from itertools import groupby lst = [1, 2, 3, 5, 6, 7, 8, 11, 12, 13, 19] # 连续数字 fun = lambda x: x[1]-x[0] for k, g in groupby(enumerate(lst), fun): l1 = [j for i, j in...
获取列表中连续数字序列 python
from itertools import groupby #获取列表中连续数字序列 lst = [234,55,233,1, 2, 3,4, 5, 6, 7, 8, 11, 12, 13, 19,21344,4646,22,34,55] # 连续数字 index_with_fault = [] fun = lambda x: x[1]-x[0] for k, g in groupby(e...
把列表里连续的数字合并到连续范围里
论文写得快疯了嗯。上来换口气。 刚才看到问答频道的一个问题,[url=http://www.iteye.com/problems/18346]javascript 数组差值排列[/url] [quote=&quot;bjqincy&quot;]一个数组, [1,2,3,6,9,20,21,34,45,67,68] 将后一个与前一个的差值 假如连续差值等于1,就要将第一元素与最后一个输出 结果 显示为...
在一串字符中匹配出4个连续的数字
String str = "【中兴视通】cool170:您的注asdfjaskljhklasdjakl;qweopgm55555fgsdfg,emklemklwe册验证码为9526,请于2分钟内正确输入验证码。"; Pattern pattern = Pattern.compile("(? Matcher matcher = pattern.matcher(str); if(matcher.
判断获取集合或者数组中的数字类型的元素是否连续
最近要修改excel导入错误提示功能,将原有的throw抛出换成一次性提示。方案很简单用list贯穿接受。 但是在excel导入时,若excel某行没有数据,有2两种情况,第一种是row为null,第2种是因键盘del键删除内容,造成的空字符串。 可判断row是否为null,或者判断Cell.CELL_TYPE_BLANK和cell.getCellType()是否相等即可。 将这些为空的放入...
java 判断一个数组中的数值是否连续相邻
判断一个数组中的数值是否连续相邻 * 满足以下条件: * 1.0是例外可以反复出现 0可以通配任何字符 * 2.相同的数值不会重复出现 * 3.该数组可以是乱序的 * 当数组不含有0时满足最大值-最小值=n(数组长度)-1 * 当数组数组含有0时.满足最大值-最小值<n(数组长度)-1 * 所以,当最大值最大值-最小值>n(数组长度)-1时,一定不是连续相邻数组
js/java判断数组中数字连续
js实现判断数组数字连续 function checkValue(a) { for (var i = 0; i &amp;lt; a.length-1; i++) { if(a[i+1]-a[i] != 1){ return false; } } return true; } var a = [1,2,3,4,5,6...
判断数组中的元素是否连续
现有一个整数数组,其元素是0-65535之间的任意数字。一直相同数字不会重复出现,而0可以重复出现,且0可以通配任意一个数字。设计一个算法判断该数组中的元素是否连续。 如果一个数组包含n个元素,并且该数组中元素是连续的,那么它一定具有“数组中最大值元素与最小值元素之差为n-1”的性质。如果这些元素中包含0这样的通配数字,并且保证数组中的元素是连续的,那么数组中的非零最大值与非零最小值之差不能超过...
php 判断顺子|判断为三个数字连号|随意3个数字连号判断顺子
$ss = 123; //你要测试的数字 if(preg_match('/^(0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){2}\d$/',$ss)){ echo "是顺子"; }else{ echo "不是顺子"; }
ORACLE_某列连续数判断
代码: WITH t1 AS  (SELECT 1 c1     FROM dual   UNION ALL   SELECT 2 c1     FROM dual   UNION ALL   SELECT 3 c1     FROM dual   UNION ALL   SELECT 4 c1     FROM dual   UNION ALL   SELECT 6
怎样查出连续数字中缺失的数字
今天遇到一个问题,是要从1-100中找到缺失的数字,而且是杂序排列,开始的时候确实有点懵,怎么弄啊,后来看了别人的idea,自己动手做了一下,在这里做个记录,大家有更好的意见,请回复啊 public class PaiXu { /** * @param args */ public static void main(String[] args) {
简单密码验证:重复的数字字母或连续的数字字母
验证字符串是否是重复的数字字母(111,aaa)或连续的数字字母(123,ABC),基本思想是将字符串转为一个个的char进行计算, /** * 简单密码验证 重复的数字或字母111 aaa 。连续的数字和字母123 abc * @param password * @return */ public static String simpleVerifyPassword(...
java判断循环数组是否连续并获取不连续的项以及重复项
http://blog.csdn.net/tengdazhang770960436/article/details/8183321 package com.hdx.test; import java.util.ArrayList; import java.util.List; public class Lianxu { public static
用sql检查数据是否连续
数据格式:每个ID每天有一条数据,每天可能有新ID数据,也可能有ID不再有数据 实现要求:检查每个ID的数据在某时间段内是否连续 解决思路:查出每个ID出现的最早日期和最晚日期,日期相减,如果与数据数一致,则说明连续,否则说明不连续。示例SQL如下: select mindate,maxdate,difday - cnt cnt,COUNT(*) subcnt from ( select
Oracle数据库如何取连续数据并作分组
今晚没有太多的时间自己去描述这个问题,所以就打算简写了。在oracle 数据库中有 dense_rank分析函数,就是用这个来处理连续字段select a,b,bak1 dense_rank() over(order by bak1 - rowmun) c from table bak1 为出现连续数据的字段名,rownum 为oracle 数据库隐藏的字段,从1开始。
oracle产生连续的数字
在项目开发中,有个需求是mini-combobox的下拉框显示学年,是个固定的范围:2000-2099学年,原来的做法是直接调用字典,传值,现在就需要自己写一段SQL来实现,给下拉框一个url让自动加载: 主要写一个这段SQL:with t as (select rownum rn from dual connect by rownum<=3000 ) select * from t where
前端js获取一个数组中的连续数字
例:oldArr = [1,2,3,7,8,9,15,17,18,19] 根据这个数组可以得到以下一个二维数组 newArr = [[1,2,3],[7,8,9],[15],[17,18,19]]方法一:function fn(arr){ var result = [], i = 0; result[i] = [arr[0]]; arr.reduce(function(...
sql找出连续时间连续日期和连续数字
tips: 1 代码在sqlserver2005实现,其他数据需要经过修改 2 计算连续时间和连续数字是同一类问题,所以合起来一起说,计算连续时间的时候只不过将时间转换成数字而已 3 此方法相对高效 第一步 构造数据 create table #tmptable(id int identity(1,1),rq smalldatetime) insert #tmptable val...
iOS 判断数组中数字是否连续
此时此刻没有想法,顺手写的,可能有很多bug,欢迎指正。。。 -(BOOL)suibian:(NSArray *)array{ NSMutableArray *tempArr = [NSMutableArray array]; NSMutableArray *tempArr2 = [NSMutableArray array]; ...
java获取一维数组中连续数字分成几个连续的数字数组
java获取一维数组中连续数字分成几个连续的数字数组 比如{12,13,14,23,24,34,45,46,47,48,56} 分成【12,13,14】【23,24】【34】【45,46,47,48】【56】等 public static int[][] getContinuousNumber(int[] array) { int[][]arrays=new int[array.l
JAVA 判断是否连续字母或者数字
来源:http://itssh.cn/post/943.html JAVA实现连续字母或者数字: 实现思路:统一转成ASCII进行计数判断,纯数字、纯字母 //纯数字(数字0 -- 数字9,对应ASCII为48 -- 57) //大写纯字母(大写字母A -- 大写字母Z,对应ASCII为65 -- 90) //小写纯字母(小写字母a -- 小写字母z,对应...
LeetCode180-MySQL-连续出现的数字
编写一个 SQL 查询,查找所有至少连续出现三次的数字。+----+-----+ | Id | Num | +----+-----+ | 1 | 1 | | 2 | 1 | | 3 | 1 | | 4 | 2 | | 5 | 1 | | 6 | 2 | | 7 | 2 | +----+-----+ 例如,给定上面的 Logs 表, 1 是唯一连续出现至少三...
如何判断一个数组中的数值是否连续相邻
问题 一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现;0是个例外,可以反复出现。设计一个算法,当从该数列中随意选取5个数值时,判断这5个数值是否连续相邻。需要注意一下4点: 1.5个数值
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 连续学习三年java java后台该如何学习

相似问题

2
Java后台如何判断一串数字是否连续,连续合并数字
2
java如何实现jsp调用servlet后页面不跳转
2
java怎么判断python脚本命令是否符合语法规则?
1
java怎么判断shell命令是否符合语法规则?
2
java项目导入另外一个项目打成的jar包,项目和jar项目的数据库数据源不同,如何调用jar的dao层方法执行。
1
如何实现在客户端或浏览器页面中集成一个类似plsqldeveloper一样的查询功能?
0
用JFrame如何实现小球移动并且能访问setsize之外的坐标
6
Java后台调用restful接口,怎么调用,get带参数的怎么传递。
2
java取出LDAP中的whenChanged字段如何转换?
0
如何使用遗传算法解决球面均匀分布100个点的问题?
1
java如何实现在setsize里改变坐标位置?
2
AES算法java字节替代的代码应如何理解?
1
如何生成生成这种格式的字符串 TimeStamp=2018-10-09T12:46:24Z
0
Java用docx4j做合并word文档,导致wps打开无法分页,用office却可以
3
JAVA编程软件eclipse出错应该如何解决?
7
【Java】怎么比较两个字符串中的数字大小?
2
java上传文件时,前台的如何把文件以二进制的方式传到后台
1
java线程类的join方法是否会释放锁,网上很多人说不释放锁,但是join底层使用wait,wait是释放锁的
3
求助:IDEA中如何一键将所有的方法的方法体隐藏
6
通过JSP按钮选择本地文件,如何保存这个文件的绝对路径?