如何在给定数字中缺少数字的情况下,用分割数字?

拉尔·雷迪(Lal Reddy)P:

我正在尝试获取此输出。但是,是否未能通过此“,”单独缺失数字?

Input: 1, 2, 3, 4.. 9, 10,13.. 17, 18, 19.. 25 
Output: 1 2 3 4 5 6 7 8 9 10 13 14 15 16 17 18 19 20 21 22 23 24 25
蒂姆·比格莱森(Tim Biegeleisen):

这是一个可以满足您需要的工作实现,下面的代码进一步解释:

public static String getCSV(int start, int end) {
    List<String> list = IntStream.range(start, end).boxed()
       .map(i -> i.toString()).collect(Collectors.toList());
    String csv = String.join(" ", list);

    return csv;
}

public static void main(String args[])
{
    String input = "1, 2, 3, 4.. 9, 10,13.. 17, 18, 19.. 25";
    input = input.replaceAll(",\\s*", " ");
    Pattern r = Pattern.compile("(\\d+)\\.\\.\\s*(\\d+)");
    Matcher m = r.matcher(input);
    StringBuffer stringBuffer = new StringBuffer();
    while (m.find( )) {
        int start = Integer.parseInt(m.group(1));
        int end = Integer.parseInt(m.group(2));
        m.appendReplacement(stringBuffer, getCSV(start, end+1));
    }
    System.out.println(stringBuffer);
}

输出:

1 2 3 4 5 6 7 8 9 10 13 14 15 16 17 18 19 20 21 22 23 24 25

这种方法使用正则表达式匹配器来识别每对数字(用省略号(例如4.. 9)),然后将其替换为从起点到终点之间连续的空格。Java 8流在这里派上用场,该getCSV()方法从起始和结束输入值生成一个包含数字序列的字符串。然后,我们只需要遍历整个输入,并使用helper方法替换每个省略号即可。

演示版

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在没有+的情况下加数字

容易的面试问题变得更加困难:给定数字1..100,在正好缺少k的情况下找到缺失的数字

在给定范围内用特定数字写的所有数字的总和

列表中的数字小于给定数字

如何在不使用列表的情况下转换字符串中的数字?

用给定数字约会

给定数字范围类型为float的情况下如何用类别值替换列中的数字范围

在给定数百万个数字流的情况下,如何近似百分之九十

在给定条件下将数字加到数组中

如何在不影响R中数字的情况下反转字符串?

在特定情况下如何在python中舍入任何数字

如何在不创建新列表的情况下增加列表中的数字?

如何在%NAN高于特定数字的情况下删除浮点功能?

JavaScript:完全旋转字符串,然后在给定数字输入的情况下向另一个方向旋转字符串

在MySQL中给定条件的情况下,如何更新列中的数字?

Rust在给定一系列数字的情况下实现了一个简单的质数集合

即使在给定列表中的数字的情况下,我的不和谐机器人上的if语句似乎也跳到了其他位置

如何在不丢失C#中的数字值的情况下将int数字转换为char

在给定一组6位数字的情况下,找到每种可能的“非重复”组合

MATLAB:如何在给定数字数组的情况下评估符号函数,并返回结果数组?

如何在给定数组中关联表的任何值的情况下获得表中的所有记录?

如何在给定数字n的最大n平方上打印魔术矩阵

如何在不使用isdigit的情况下检查数字是否不是C中的整数?

如何在给定特定公式的情况下添加用户输入的一些数字

如何在给定数据框中的值或索引列表的情况下屏蔽数据框

如何在不改变python中输入元素顺序的情况下用数字分隔单词

在没有给定数字集的情况下,找到所有可能的数字组合以达到给定的总和(Java)

如何在给定输入的数字中找到最大的数字?

如何找出向量中有多少数字小于给定数字