【发布时间】:2015-12-03 19:30:12
【问题描述】:
我有一个字符串 [5:10, 1:2],我必须在其中压缩该字符串并同时进行排序。 我使用了这个正则表达式
String[] strRange = ranges.replaceAll("\\s", "").replaceAll("[^A-Za-z0-9 ]"," ").split(" ");
将其转换为简单的数字字符串数组[5,10,1,2]。
我对整数进行了一些字符串操作,以便可以将该字符串数组存储到ArrayList<Integer>。
不知何故,我使用 Collections.sort() [1,2,5,10] 对列表进行了排序。
我需要将排序后的Arraylist 转换回[1:2,5:10]。
谁能帮我集思广益这个问题?
【问题讨论】:
-
只需遍历您的数组并构建一个字符串。放 : 或 , 根据计数器的模
-
@hsnkhrmn 如果您不介意,请详细说明您的逻辑方法。我只是尝试了简单的方法 'arr.get(j)+":"+arr.get(j+1)+"," +arr.get(j+2)+":"+arr.get(arr.size ()-1))' 并且它适用于给定的字符串。谢谢。
-
(什么是首先用固定字符串替换一个模式并立即在 split() 中使用该字符串的想法?只需使用
ranges.replaceAll("\\s+", "").split("[^A-Za-z0-9 ]")就可以了,但考虑使用Stream<String> Pattern.splitAsStream(CharSequence input)。)
标签: java string algorithm sorting