私は学業のためにこの問題を解こうとしてきましたが、一生わからないのです。問題は次のとおりです。「worked_example_1/babynames.txt」を読み取り、boynames.txt と girlnames.txt の 2 つのファイルを作成し、男の子と女の子のデータを分離するプログラムを作成します。
これは、この問題に対する wiley.com/go/javaexamples の Worked Example 11 のコードです。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class BabyNames
{
public static final double LIMIT = 50;
public static void main(String[] args) throws FileNotFoundException
{
Scanner in = new Scanner(new File("babynames.txt"));
RecordReader boys = new RecordReader(LIMIT);
RecordReader girls = new RecordReader(LIMIT);
while (boys.hasMore() || girls.hasMore())
{
int rank = in.nextInt();
System.out.print(rank + " ");
boys.process(in);
girls.process(in);
System.out.println();
}
in.close();
}
}
この:
import java.util.Scanner;
public class RecordReader
{
private double total;
private double limit;
public RecordReader(double aLimit)
{
total = 0;
limit = aLimit;
}
public void process(Scanner in)
{
String name = in.next();
int count = in.nextInt();
double percent = in.nextDouble();
if (total < limit)
{
System.out.print(name + " ");
}
total = total + percent;
}
public boolean hasMore()
{
return total < limit;
}
}
babynames.txt を作成し、.java ファイルと同じ src フォルダーに配置しました。ファイルへの直接パスを指定すると、ファイルが見つかりませんでした。
Scanner in = new Scanner(new File("C:/Users/me/SkyDrive/Schoolwork/CIS150AB/Chapter 11.1/src/babynames.txt"));
ファイルは見つかりますが、次のエラーが表示されます。
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at BabyNames.main(BabyNames.java:20)
私には、このエラーは 20 行目の int rank = in.nextInt(); が原因のように見えます。intを探すときに文字列を探しますが、これはWileyのWebサイトから直接なので、よくわかりません。
どうやら私はJavaのオンラインクラスを対象としていないようです。次のクラスは、スケジュールに合わせて学校で受講します。