java 连续数字数组分组
问题: 1. 将Lis list = Arrays.asList(1,2,3,5,8,9,10), 拆分成 [1,2,3] 、[5]、 [8,9,10] ,
2. 再传入一个数字 9, 将匹配数字9的数组输出来 ?
/**
* 将 int [1,2,3,5,8,9,10] 连续的分组成[1,2,3]、[5]、[8,9,10]
* 再传入9 ,匹配上面的分组取出 [9,10]
* @param NoNum 传入的整形数组
* @param charct 传入匹配的数字
* @return 返回含有匹配数字的数组
*/
public String convert(List<Integer> NoNum, int charct) {
int state = 0;
String result = "";
for (int i = 0; i < NoNum.size(); i++)
{
if (i == NoNum.size() - 1){
state = 2;
}
if (state == 0)
{
if (NoNum.get(i + 1) == NoNum.get(i) + 1)
{
result += Integer.toString(NoNum.get(i));
result += "-";
state = 1;
}
else
{
result += Integer.toString(NoNum.get(i));
result += ",";
}
}
else if (state == 1)
{
if (NoNum.get(i + 1) != NoNum.get(i) + 1)
{
result += Integer.toString(NoNum.get(i));
result += ",";
state = 0;
} else {
result += NoNum.get(i)+"-";
}
}
else
{
result += Integer.toString(NoNum.get(i));
}
}
String [] str = result.split(",");
for ( int stritem = 0 ; stritem < str.length ; stritem++ ) {
String [] sp = str[stritem].split("-");
List<String> tt = Arrays.asList(sp);
if ( tt.contains( charct+"")) {
result = str[stritem].replace("-",",");
}
}
return result;
}
java 连续数字数组分组的更多相关文章
- 找出数组中最长的连续数字序列(JavaScript实现)
原始题目: 给定一个无序的整数序列, 找最长的连续数字序列. 例如: 给定[100, 4, 200, 1, 3, 2], 最长的连续数字序列是[1, 2, 3, 4]. 小菜给出的解法: functi ...
- Java课程课后作业190315之从文档中读取随机数并得到最大连续子数组
从我上一篇随笔中,我们可以得到最大连续子数组. 按照要求,我们需要从TXT文档中读取随机数,那在此之前,我们需要在程序中写入随机数 import java.io.File; import java.i ...
- 【JAVA零基础入门系列】Day10 Java中的数组
什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...
- LeetCode 581. Shortest Unsorted Continuous Subarray (最短无序连续子数组)
Given an integer array, you need to find one continuous subarray that if you only sort this subarray ...
- Java学习之路(三):Java中的数组
数组的概述和定义的格式 数组的作用: 用来存储同种数据类型的多个值 数组的基本概念: 数组是存储同一种数据类型多个元素的集合.就相当于一个容器. 注意:数组既可以存储基本数据类型,也可以存储引用数据类 ...
- js-FCC算法Smallest Common Multiple。找出两个参数和它们之间的连续数字的最小公倍数。
存档. 找出能被两个给定参数和它们之间的连续数字整除的最小公倍数. function smallestCommons(arr) { //分解质因数法,分解为若干个质数相乘 var arrratio=[ ...
- 编程算法 - 数字数组中只出现一次 代码(C)
数字数组中只出现一次 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 一个整型数组里除了两个数字以外, 其它的数字都出现了两次. 请敲代码找出这 ...
- JAVA二维数组的复制
JAVA二维数组的复制 笔者今天做一道ccf题目时,遇到要将二维数组拷贝复制时,没有用常规的那种一个一个数的复制,用的是System.arraycopy()来进行复制,下面介绍这个函数的一些注意点: ...
- [LeetCode] Shortest Unsorted Continuous Subarray 最短无序连续子数组
Given an integer array, you need to find one continuous subarray that if you only sort this subarray ...
随机推荐
- ActiveMQ+ZooKeeper搭建高可用集群
一.说明 实际的应用中,一般为了应用的高可用性,都会搭建集群环境去处理.部署多台应用,这样,即使一台有问题,其他热备应用可以立马顶上,继续提供服务. ActiveMQ的集群部署,基于zookeeper ...
- 单元测试框架Uinttest一文详解
一谈及unittest,大家都知道,unittest是Python中自带的单元测试框架,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作.unittest单元测试框架不仅可以适用于单元 ...
- selenium-04-验证码问题
对于web应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,对于系统来说使用验证码可以有效果的防止采用机器猜测方法 ...
- asp.net core IdentityServer4 实现 implicit(隐式许可)实现第三方登录
前言 OAuth 2.0默认四种授权模式(GrantType) 授权码模式(authorization_code) 简化模式(implicit) 密码模式(resource owner passwor ...
- 两个变量交换数字 不用第三个变量的情况下 int a = 5,b = 6
今天可是涨见识额 记录一下 第一种方法: a=a+bb=a-ba=a-b 第二种: b= a+(a=b)*0 一句话搞定
- 23种设计模式之装饰器模式(Decorator Pattern)
装饰器模式(Decorator Pattern) 允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. 这种模式创建了一个装饰类,用来包 ...
- go 学习笔记之10 分钟简要理解 go 语言闭包技术
闭包是主流编程语言中的一种通用技术,常常和函数式编程进行强强联合,本文主要是介绍 Go 语言中什么是闭包以及怎么理解闭包. 如果读者对于 Go 语言的闭包还不是特别清楚的话,可以参考上一篇文章 go ...
- 读取unicode日志文件并清除记录的垃圾文件
//读取unicode文件,并清除记录的垃圾文件 //参数1:日志文件路径 bool ReadFilePath(const wchar_t *DataFilePath) { wchar_t ChBuf ...
- 3. Git与TortoiseGit基本操作
1. GitHub操作 本节先简单介绍 git 的使用与操作, 然后再介绍 TortoiseGit 的使用与操作. 先看看SVN的操作吧, 最常见的是 检出(Check out ...), 更新 (U ...
- 防DOS攻击-网络连接法
#!/bin/bash netstat -antup | grep SYN_RECV | awk '{print $5}' |awk -F: '{print $1}'|sort|uniq -c > ...