gpt4 book ai didi

java - 如何从java中的字符串列表中删除最后3个字符?

转载 作者:行者123 更新时间:2023-12-01 11:06:55 25 4
gpt4 key购买 nike

我有一个列表,其中包含一些格式为 23:45:50 ,12:32:70 等的字符串。我想在 : 之后剪切最后两位数字。

我正在使用substring(),但它无法正常工作,我正在发布我的代码:

public class SplitString {

public static void main(String[] args) {

List<String> aList = new ArrayList<String>();
aList.add("4:78:34");
aList.add("5:8:34");
aList.add("8:18:90");
aList.add("2:8:40");


for(int i=0;i<aList.size();i++){

String str = aList.get(i).substring(0, aList.get(i).length()-3);
aList.add(str);

}
System.out.println(aList);
}

}

但给出结果

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -2
at java.lang.String.substring(Unknown Source)
at com.test.SplitString.main(SplitString.java:19)

我希望输出为 23:45,12:32

最佳答案

我认为你应该创建一个新列表来存储子字符串。你知道你的for循环什么时候中断吗?我调试了它,发现当你的 alist.size()=0 时它会中断。当 aList.get(i).length()<3 时发生异常。所以你只需这样做:

`
List<String> aList = new ArrayList<String>();
aList.add("4:78:34");
aList.add("5:8:34");
aList.add("8:18:90");
aList.add("2:8:40");
List<String> subList = new ArrayList<String>();
for (int i = 0; i < aList.size(); i++)
{

String str = aList.get(i).substring(0, aList.get(i).length() - 3);
subList.add(str);

}
System.out.println(subList);`

关于java - 如何从java中的字符串列表中删除最后3个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32856752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com