拆分字符串数组的字符串

时间:2018-05-08 13:04:22

标签: android string

我有这样的字符串数组:

String[] q1={"AAA-BBB","AAA-CCC","AAA-DDD"}

我想要这样的结果

temp={"BBB","CCC","DDD"}

我尝试了以下代码,但结果是错误的

 for(int i=0;i<q1.length;i++){
       ArrayList<String> temp=new ArrayList<>(Arrays.asList(q1[i].split("AAA-")));

    }

4 个答案:

答案 0 :(得分:3)

试试这样:

  ArrayList<String> temp=new ArrayList<>();
   for(int i=0;i<q1.length;i++){
        String[] array = q1[i].split("-");
        temp.add(array[1]);
    }

答案 1 :(得分:1)

您可以使用子字符串:

ulist<- unique(df$X4)
uniq <- length(unique(df$X4))
brk <- 0
rn <- length(df$X1)
coor <- NULL
while (brk < rn) {

found <- rep(0,uniq)
coor.s <- 0
coor.e <- 0

coor.s <- df$X2[brk+1]
for (i in (brk+1):rn) {
for (j in 1:uniq) {
  if(df$X4[i] == ulist[j]) {found[j]<-1}
}
if (sum(found)==uniq) {coor.e <- df$X3[i];brk=i;break}

}

if(sum(found)<uniq) {
break
} else {
collect.df <- as.data.frame(rbind(coor,c(coor.s,coor.e)))
}
}

答案 2 :(得分:1)

您是否尝试在循环外创建ArrayList?如前所述,您正在为字符串数组中的每个元素创建一个新的ArrayList

ArrayList<String> temp = new ArrayList<>();
for(int i=0;i<q1.length;i++){
   temp.add(q1[i].split("AAA-"));
}

答案 3 :(得分:1)

您发现错误因为您使用拆分

  

围绕给定正则表达式的匹配拆分此字符串。   https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

q1[i].split("AAA-")

在这一行你有2个结果分裂0 =&#34;&#34; AND 1 =&#34; BBB&#34; 所以你需要选择秒结果

您有多种解决方案

https://stackoverflow.com/a/50234408/6998825所说

    String[] array = q1[i].split("-");
    temp.add(array[1]);
//change this q1[i].split("AAA-") to
q1[0].substring(4)

如果您的AAA-不会改变