-3
私はユーザーに整数を入力させなければなりません。そして、ファイルを読むことによって、その整数が何回出現したのか、次に最も長い数列を見つける必要があります。私は一般に、これらの2つのものを見つける方法があると思うが、私はファイルからかなり読んでいるとは思わない。私は日食を使用しているので、私のファイルは、それが読まれるための特定の場所になければならないのですか、まったく間違ったコードですか?整数が何回出現し、最も長いシーケンスがファイルから読み込まれるかを調べるにはどうすればよいですか?
import java.util.Scanner;
import java.io.File;
int[]data;
int []counter;
int temp;
random.data = new int[5000];
try{
random.readDataFromFile();
}
catch(Exception e){
}
random.findInteger();
random.longSequence();
}
//method to receive the input from the user and prints the number of times that the value occurs
public void readDataFromFile() throws Exception {
java.io.File infile = new java.io.File("5000RandomNumbers.txt");
Scanner input = new Scanner(infile);
for (int i = 0; i < data.length; i++) {
data[i] = input.nextInt();
}
input.close();
}
public void findInteger(){
Scanner input = new Scanner (System.in);
//ask user for an integer
System.out.println("Please enter an integer value");
for (int i = 0; i < data.length; i++){
data[i] = input.nextInt();
}
input.close();
for (int i = 0; i < data.length; i++){
temp = data[i];
counter[temp]++;
}
for (int i = 0; i <counter.length; i++){
if (counter[i] > 0 && counter[i]==1){
System.out.println(i + "occurs" + counter[i] + "times");
}
else if (counter[i]>= 2){
System.out.println(i + "occurs" + counter[i] + "times");
}
}
}
//method that prints out the longest increasing sequence in the data
public void longSequence(){
int count = 1;
int max = 1;
for (int i = 1; i < data.length; i++){
if (data[i] >= data[i-1]){
count ++;
}
else{
count = 1;
}
if (count > max){
max = count;
}
}
System.out.println(max);
}
}