gpt4 book ai didi

java - 无法将字符串类型的数组列表转换为整数数组列表并将新列表传递给方法

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

public class PGM2 {

public static void main (String [] args){
try {
Scanner scn = new Scanner(new File("/D:filename"));
scn.useDelimiter("/n");
ArrayList<String> Stringarraylist = new ArrayList<String>();
while (scn.hasNext()){
Stringarraylist.add((scn.next()));
}
ArrayList<Integer> numbers = new ArrayList<Integer>();
for (String s : Stringarraylist){
numbers.add (Integer.parseInt(s));
}
//numbers.add((Stringarraylist.get(i)));
System.out.println("the given list is :"+ numbers);
scn.close();`enter code here`
} catch (Exception e) {
System.out.println("the exception found is "+ e);
}
}
}

我的输入文件有一些值,我打算稍后在程序中使用它们。我用过ArrayList收集所有这些值,但无法将它们直接存储到ArrayList<Integer>中因此尝试输入cast但是 NumberNotFound异常即将到来。

最佳答案

这会起作用。

  • 变量名从小写字母开始。
  • 您需要使用/r 和/n 来换行 - 这取决于您使用的是 Windows 还是 Linux。

这是工作代码:

   public static void main(String[] args) {

Pattern p = Pattern.compile("-?[0-9]+");

try {
Scanner scn = new Scanner(new File("C:/workspace/test.txt"));
scn.useDelimiter("[\\r\\n]+");
ArrayList<Integer> numbers = new ArrayList<Integer>();
while (scn.hasNext()) {
String s = scn.next().trim();
if (p.matcher(s).matches()) { // this will skip invalid lines
numbers.add(Integer.parseInt(s));
}
}
System.out.println("the given list is :" + numbers);
scn.close();
} catch (Exception e) {
System.out.println("the exception found is " + e);
}
}

第二个解决方案,使用更好的 Scanner 类。扫描仪可以为您找到整数。

 public static void main(String[] args) {

try {
Scanner scn = new Scanner(new File("C:/workspace/test.txt"));
ArrayList<Integer> numbers = new ArrayList<Integer>();
while (scn.hasNext()) {
if(scn.hasNextInt()){
numbers.add(scn.nextInt());
}
}
System.out.println("the given list is :" + numbers);
scn.close();
} catch (Exception e) {
System.out.println("the exception found is " + e);
}
}
}

关于java - 无法将字符串类型的数组列表转换为整数数组列表并将新列表传递给方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28286651/

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