我的问题是 - 如何将String ArrayList转换为Integer ArrayList?
我的°
背后有EX: 352°
号码 // Read text in txt file.
Scanner ReadFile = new Scanner(new File("F:\\test.txt"));
// Creates an arraylist named ArrayString
ArrayList<String> ArrayString = new ArrayList<String>();
// This will add the text of the txt file to the arraylist.
while (ReadFile.hasNextLine()) {
ArrayString.add(ReadFile.nextLine());
}
ReadFile.close();
// Displays the arraystring.
System.out.println(ArrayString);
。如果我将它们放入Integer ArrayList中,它就不会识别这些数字。为了解决这个问题,我将它们放入String ArrayList中,然后识别它们。
我想将String Arraylist转换回Integer Arraylist。那我该如何实现呢?
这是我到目前为止的代码。我想将ArrayString转换为Int Arraylist。
SELECT
PIDM, LEVL_CODE,
round(sum(TOTAL_POINTS) / sum(TOTAL_CREDITS), 2) AS GPA,
sum(TOTAL_POINTS) AS TOTAL_POINTS, sum(TOTAL_CREDITS) AS TOTAL_CREDITS
FROM (
SELECT
SFRSTCR.SFRSTCR_PIDM AS PIDM, SHRGRDE_LEVL_CODE AS LEVL_CODE,
sum(SHRGRDE.SHRGRDE_QUALITY_POINTS * SFRSTCR.SFRSTCR_CREDIT_HR) AS TOTAL_POINTS,
sum(SFRSTCR.SFRSTCR_CREDIT_HR) AS TOTAL_CREDITS
FROM
SFRSTCR INNER JOIN SHRGRDE ON SFRSTCR.SFRSTCR_GRDE_CODE = SHRGRDE.SHRGRDE_CODE
WHERE
SHRGRDE_GPA_IND = 'Y' AND SFRSTCR.SFRSTCR_RSTS_CODE IN ('RE', 'RW', 'RR')
GROUP BY
SFRSTCR.SFRSTCR_PIDM, SHRGRDE_LEVL_CODE
) GT
WHERE TOTAL_CREDITS > 0 -- Prevent x/0 errors
GROUP BY PIDM, LEVL_CODE
提前致谢
迭
PS:对不起,如果我不完全清楚,但英语不是我的主要语言。我也是Java的新手。
答案 0 :(得分:2)
您可以使用°
替换您要忽略的任何字符(在本例中为String.replaceAll
):
"somestring°".replaceAll("°",""); // gives "sometring"
或者您可以使用String.substring
删除最后一个字符:
"somestring°".substring(0, "somestring".length() - 1); // gives "somestring"
其中一个应该适合您的情况。
现在剩下的就是使用Integer.parseInt
即时解析输入:
ArrayList<Integer> arrayInts = new ArrayList<Integer>();
while (ReadFile.hasNextLine()) {
String input = ReadFile.nextLine();
try {
// try and parse a number from the input. Removes trailing `°`
arrayInts.add(Integer.parseInt(input.replaceAll("°","")));
} catch (NumberFormatException nfe){
System.err.println("'" + input + "' is not a number!");
}
}
您可以将自己的处理添加到输入不是实际数字的情况。
答案 1 :(得分:1)
您必须创建一个使用Integer包装类键入的ArrayList的新实例,并为其提供与String列表相同大小的缓冲区:
List<Integer> myList = new ArrayList<>(ArrayString.size());
然后迭代遍历Arraystring,通过在包装类中使用解析方法将值从一个赋值给另一个
for (int i = 0; i < ArrayString.size(); i++) {
myList.add(Integer.parseInt(ArrayString.get(i)));
}