我有这样的字符串数组:
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-")));
}
答案 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-不会改变