我的任务有问题。
我的工作是
String
(在源文件中是一行中的数字,除以空格)String
解析为int
我一直坚持解析,不知道该怎么做。
代码atm看起来像这样:
public class Main
{
public static void main(String[] args) throws IOException
{
String numbers = new String(Files.readAllBytes(Paths.get("C:\\README.txt")));
String s[] = numbers.split(" ");
for (String element : s)
{
System.out.println(element);
}
}
}
我尝试使用扫描程序读取字符串数字,然后将其循环为parseInt,但对我不起作用。
答案 0 :(得分:2)
您要查找的方法是Integer#parseInt()
使用 Java 8 时,您可以使用Stream API,如下所示:
final List<Integer> intList = new LinkedList<>();
try {
Files.lines(Paths.get("path\\to\\yourFile.txt"))
.map(line -> line.split(" "))
.flatMap(Stream::of)
.map(Integer::parseInt)
.forEach(intList::add);
} catch (IOException ex) {
ex.printStackTrace();
}
没有溪流:
final List<Integer> intList = new LinkedList<>();
try {
for (String line : Files.readAllLines(Paths.get("path\\to\\yourFile.txt"))) {
for (String numberLiteral : line.split(" ")) {
intList.add(Integer.parseInt(numberLiteral));
}
}
} catch (IOException ex) {
ex.printStackTrace();
}
答案 1 :(得分:0)
你可以试试这个:
public class Main
{
public static void main(String[] args) throws IOException
{
String numbers = new String(Files.readAllBytes(Paths.get("C:\\README.txt")));
String s[] = numbers.split(" ");
for (String element : s)
{
int number = Integer.valueOf(element) // transform String to int
System.out.println(number);
}
}
}
我认为一个想法是将整个String-Array
转换为int-array
或List of Integers
这可以用这种方法完成(几乎和上面一样):
private List<Integer> transformToInteger(final String[] s) {
final List<Integer> result = new ArrayList<Integer>();
for (String element : s)
{
final int number = Integer.valueOf(element);
result.add(number);
}
return result;
}
现在您可以在此结果列表上执行冒泡排序。