私はN文字列とQクエリも文字列であるプログラムを作成しました。目的はN文字列に各クエリが何回出現するかをと決定することです。ArrayList内のJavaカウント文字列の出現
このは私のコードである:
import java.util.Scanner;
import java.util.ArrayList;
public class SparseArrays{
// count the number of occurances of a string in an array
int countStringOccurance(ArrayList<String> arr, String str){
int count = 0;
for (int i=0; i<arr.size(); i++) {
if (str==arr.get(i)) {
count += 1;
}
}
return count;
}
void start(){
// scanner object
Scanner input = new Scanner(System.in);
// ask for user to input num strings
System.out.println("How many string would you like to enter?");
// store the number of strings
int numStrings = input.nextInt();
// to get rid of extra space
input.nextLine();
// ask user to enter strings
System.out.println("Enter the "+numStrings+" strings.");
ArrayList<String> stringInputArray = new ArrayList<String>();
for (int i=0; i<numStrings; i++) {
stringInputArray.add(input.nextLine());
} // all strings are in the stringInputArray
// ask user to input num queries
System.out.println("Enter number of queries.");
int numQueries = input.nextInt();
// to get rid of extra space
input.nextLine();
// ask user to enter string queries
System.out.println("Enter the "+numQueries+" queries.");
ArrayList<String> stringQueriesArray = new ArrayList<String>();
for (int i=0; i<numQueries; i++) {
stringQueriesArray.add(input.nextLine());
} // all string queries are in the stringQueriesArray
for (int i=0; i<stringQueriesArray.size(); i++) {
int result =
countStringOccurance(stringInputArray,stringQueriesArray.get(i));
System.out.println(result);
}
}
void printArr(ArrayList<String> arr){
for (int i=0; i<arr.size(); i++) {
System.out.println(arr.get(i));
}
System.out.println(" ");
}
public static void main(String[] args) {
SparseArrays obj = new SparseArrays();
obj.start();
}
}
私は私のコードを実行し、例えば4つの文字列を入力すると、{ABC、ABC、ABC、DEF}ならびに{ABC、DEF、GHI} Iとして3つのクエリ3つの "abc"、1 "def"と0 "ghi"があるので、私の出力に3,1、0を得ることを期待しています。ただし、すべてのクエリで出力はゼロです。
私はこの問題は私に文字列が文字列のArrayListの中で繰り返される回数を与えることになっている方法 int型countStringOccurance(のArrayList編曲、文字列str)からであるかなり確信しています。
ここに何か不足していますか?
は、このような文字列を比較_don't_ - > '(STR == arr.get(I))であれば、'、する必要があります - > 'if(str.equals(arr.get(i)))' –
@Aominéありがとう!それが問題を解決しました。 – Amir