gpt4 book ai didi

java - 为什么我的writefile()无法编译?

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

writefile()方法应将给定数组中的所有整数写出到给定的输出文件中,每行一个。对于这一部分,merge方法应该返回一个新的数组,该数组的大小足以容纳前两个数组(a和b)的内容,然后将前两个数组复制到该数组中,而无需考虑顺序。

这是运行程序时在命令行中输入的内容:

java Merge1 sorted1.txt sorted2.txt sortedout.txt



这就是sorted1.txt中的内容。

12 51 80 138 212 237 306 316 317 337 356 413 422 511 534 577 621 708 717 738 738 846 850 900



这是sorted2.txt:

33 41 77 101 157 164 192 235 412 415 484 499 500 533 565 630 667 786 846 851 911 949 968 986



我该怎么做?

到目前为止,这是我的代码:
import java.io.*;
import java.util.Scanner;

public class Merge1
{

public static void main(String[] args)
{

File sorted1 = new File (args[0]);
File sorted2 = new File (args[1]);
File sortedout = new File (args[2]);
try{
Scanner input = new Scanner(sorted1);
readfile(input);
}
catch (FileNotFoundException e) {
System.out.println("File not found");
}
try{
Scanner input = new Scanner(sorted2);
readfile(input);
}
catch (FileNotFoundException e) {
System.out.println("File not found");
}
try{
Scanner input = new Scanner(sortedout);
readfile(input);
}
catch (FileNotFoundException e) {
System.out.println("File not found");
}




} // end main

static int[] readfile(Scanner input)
{

String num = "";
while(input.hasNextInt())
{
num += input.nextInt() + " ";
}
String[] array = num.split(" ");
int[] list = new int[array.length];
for(int i = 0; i < array.length; i++)
{
list[i] = Integer.parseInt(array[i]);
System.out.println(list[i]);
}
return list;

} // end readfile

static void writefile(PrintStream output, int[] a)
{
output.println(merge(int[] a, int[]b));

} // end writefile

static int[] merge(int[] a, int[] b)
{
int[] answer = new int[a.length + b.length];

int i = 0;
int j = 0;
int k = 0;

while (i < a.length && j < b.length)
{
if (a[i] < b[j])
{
answer[k] = a[i];
k++;
i++;
}

else
{
answer[k] = b[j];
k++;
j++;
}
}

while (i < a.length)
{
answer[k] = a[i];
k++;
i++;
}

while (j < b.length)
{
answer[k] = b[j];
k++;
j++;
}

return answer;

} // end merge


} // end Merge1

最佳答案

总是有System.arraycopy方法将一个数组复制到另一个数组中,但是您也可以使用动态数组,例如ArrayListSystem.arraycopy description

至于write方法,所需要做的就是传递的PrintStream,并使用FileOutputStream和每个值的简单println打开。对于排序,有很多排序算法,有些集合已经实现了排序方法。

关于java - 为什么我的writefile()无法编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33748466/

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