我正在使用此代码:
ArrayList<String> getques = db.getSolutionData(levelno, level);
String str = getques.get(0);
stringarr = str.split("");
System.out.println(Arrays.toString(stringarr));
这是结果输出:
07-23 16:10:37.031: I/System.out(2548): [, C, , , D, , , F, , I, , , , A, , F, , A, , , , , , , , , , , B, , C, , D, , , H, , , , , , C, , I, , G, , , A, , , E, , , B, , I, , , , , F, , G, , , H, , , A, , , E, , D, , I, , , , , , F, , , I, , G, , E, , , , , , , , , , , D, , B, , A, , , , H, , B, , , G, , , F]
现在我想在每个填充的单元格之前删除一个空白单元格。
例如:在第二个单元格之前有一个我要删除的空白单元格,在,D,
之前有2个空白单元格,所以我想在I
一个空白单元格之前从那些单元格中删除一个A
,3个空白单元格,所以我想删除其中一个,等等。
因此,我得出结论,我想在每个填充的细胞之前移除一个空白细胞。
我用过:
ArrayList<String> list = new ArrayList<String>();
for (String s : stringarr)
if (!s.equals(""))
list.add(s);
stringarr = list.toArray(new String[list.size()]);
但它删除了所有空白单元格。请提前帮助,谢谢
答案 0 :(得分:1)
List<String> list=new ArrayList<>();
for (String i:str){
if(!i.equals("")){
list.add("");
list.add(i);
}
}
stringarr = list.toArray(new String[list.size()]);
尝试它是否有效..
答案 1 :(得分:1)
您可以尝试这样的事情
String[] str=new String[]{"","C","","","","D"};
List<String> list=new ArrayList<>();
for (String i:str){
if(!i.equals("")){
list.add("");
list.add(i);
}
}
答案 2 :(得分:1)
ArrayList<String> list = new ArrayList<String>();
boolean emptyCellRemoved = false;
for (String s : stringarr) {
if ("".equals(s)) {
if (emptyCellRemoved == false) {
emptyCellRemoved = true;
} else {
list.add(s);
}
} else {
emptyCellRemoved = false;
list.add(s);
}
}
stringarr = list.toArray(new String[list.size()]);
答案 3 :(得分:1)
试试这个:)
boolean oneRemoved = false;
ArrayList<String> list = new ArrayList<String>();
for (String s : stringarr){
if (s.equals("") && !oneRemoved){
oneRemoved = true;
} else {
list.add(s);
if (!s.equals("")){
oneRemoved = false;
}
}
}
stringarr = list.toArray(new String[list.size()]);
答案 4 :(得分:1)
// original array
List<String> list = Arrays.asList(stringarr);
// modified array
List<String> l = new ArrayList<String>();
// insertion index
int index = 0;
for(int i =0 ; i< list.size() ;i++){
if(!list.get(i).equals(" ") && !list.get(i).equals("")){
index++;
//remove extra empty space from end of modified array
if(l.size() > 1){
l.remove(i - index);
}
}
//make sure that first index not empty
if(i - index == -1 ) {
index--;
}
l.add(i - index, list.get(i));
}
System.out.println(Arrays.asList(list));
System.out.println(Arrays.asList(l));
结果将是这样的:
[[ C, , , D, , , F, , I, , , , A, , F, , A, , , , , , , , , , , B, , C, , D, , , H, , , , , , C, , I, , G, , , A, , , E, , , B, , I, , , , , F, , G, , , H, , , A, , , E, , D, , I, , , , , , F, , , I, , G, , E, , , , , , , , , , , D, , B, , A, , , , H, , B, , , G, , , F]]
[[ C, , D, , F, I, , , A, F, A, , , , , , , , , , B, C, D, , H, , , , , C, I, G, , A, , E, , B, I, , , , F, G, , H, , A, , E, D, I, , , , , F, , I, G, E, , , , , , , , , , D, B, A, , , H, B, , G, , F]]
确保它是空白或空格单元格:
if(!list.get(i).equals(" ") && !list.get(i).equals("")){
我认为这样可以正常工作。