- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用了 oomparator 按子字符串的长度对数组进行排序。它工作得很好,但是有没有办法对数组中相同长度的子字符串进行排序,最好按照它们在原始字符串中出现的顺序?例如,如果我对蕉的子串进行排序,我会得到:香蕉,anana,banan,bana,nana,anan...按此顺序,想要得到:banana,banan,anana,bana,anan,nana...这是它们最初在香蕉中出现的方式。
数组如何填充:
public static String longestRepeated(String line) {
HashMap<String, Integer> subArray = new HashMap<String, Integer>();
String answer = "";
for (int i = 0; i < line.length(); i++) {
for(int j = 1 ; j <= line.length() - i ; j++) {
if (!subArray.containsKey(line.substring(i, i + j))) {
subArray.put(line.substring(i, i + j), i);
}
}
}
answer = subArray.keySet().toString();
answer = answer.replaceAll("\\[", "");
answer = answer.replaceAll("\\]", "");
String[] subs = answer.split(",");
LongestRepeatedSubstring lrs = new LongestRepeatedSubstring(line);
Arrays.sort(subs, lrs);
for (int i = 0 ; i < subs.length; i++) {
subs[i] = subs[i].trim();
}
比较器:
int lineLength;
public int compare(String str1, String str2) {
int dist1 = Math.abs(str1.length() - lineLength);
int dist2 = Math.abs(str2.length() - lineLength);
return dist1 - dist2;
}
public LongestRepeatedSubstring(String line) {
super();
this.lineLength = line.length();
}
然后我使用一些循环来查找第一个重复且不在同一索引处的循环。当数组中存在多个相同长度的重复子字符串时,就会出现此问题。我需要第一个出现在字符串中的那个,它们随机出现在数组中。
最佳答案
我真的不明白你在问什么,但我认为你想说的是,是否有办法在比较器内再次进行比较。正确的?如果是这种情况,这里是一个例子:
public static Comparator<String> CompareBySomeRestrictionAndOtherRestriction = new Comparator<String>(){
public int compare(String s, String p){
if(){//first condition, for example some strings are the same size
//then use some other criteria, for example alphabetical order
}else{
}
}
}
您只需按照自己的方式管理比较即可实现您想要的目标。
关于java - 按子字符串在原始内容中出现的顺序对子字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24688452/
我想添加子类别并在列表上使用react,但是当我单击子类别时,我有两个事件:第一个在子类别上,第二个在父类别上。 我怎样才能只有子类别? 这是我的实际代码: getList(myList){
我有一个问题。我有 1:N 关系(用户:任务)。我需要查询所有用户的列表,其中每个用户都有其任务列表 - 按日期(指定属性)排序。 最佳答案 获取用户 RealmResults users = rea
考虑以下代码片段: OPTIONS Email 每当我将鼠标悬停在 上时,
我正在与 PF4J(Plugin Framework for Java) 的开发者合作为 Wicket 提供更好的插件功能。已经有一个 pf4j-spring 和一个 pf4j-wicket 项目来提
我有一个带有 SVG 子元素的父元素(SVG 是一个简单的立方体)。父级的 CSS 不透明度 = 0.45。在 Android/Webview 上显示不透明度值在渲染时应用于各个 SVG 多边形,导致
我试图放置一个标签,使标签的顶部位于 UIViewController 下方的 2/3 处。所以我写了这个约束,但它给了我下面的错误。 NSLayoutConstraint *labelTopCons
我是一名优秀的程序员,十分优秀!