はじめに
Java では、String クラスには、文字の頻度を求めるために使用できるいくつかのメソッドが用意されています。replace()
メソッド、chars()
メソッド、およびカスタム ループを使用して、文字列内の文字の出現回数を求めることができます。この実験では、これらのメソッドを使用して Java の String 内の文字の出現回数をカウントします。
Java では、String クラスには、文字の頻度を求めるために使用できるいくつかのメソッドが用意されています。replace()
メソッド、chars()
メソッド、およびカスタム ループを使用して、文字列内の文字の出現回数を求めることができます。この実験では、これらのメソッドを使用して Java の String 内の文字の出現回数をカウントします。
~/project
ディレクトリに CharOccurrence.java
という名前の新しい Java ファイルを作成し、テキスト エディタで開きます。
cd ~/project
touch CharOccurrence.java
このステップでは、replace()
メソッドを使用して文字列内の文字のカウントを求めます。
public class CharOccurrence {
public static void main(String[] args){
String str = "abracadabra-banana";
System.out.println(str);
// count occurrence
int count = str.length() - str.replace("a", "").length();
System.out.println("occurrence of a: "+count);
}
}
ファイルを保存して閉じます。次のコマンドで Java プログラムをコンパイルします。
javac CharOccurrence.java
次のコマンドで Java プログラムを実行します。
java CharOccurrence
このステップでは、文字のストリームを返す chars()
メソッドを使用し、次に filter()
メソッドを使って文字列に含まれるすべての指定文字を取得します。count()
メソッドを使って、フィルタリングされたストリームのカウントを取得します。
public class CharOccurrence {
public static void main(String[] args){
String str = "abracadabra-banana";
System.out.println(str);
// count occurrence
long count = str.chars().filter(ch -> ch == 'a').count();
System.out.println("occurrence of a: "+count);
}
}
ファイルを保存して閉じます。次のコマンドで Java プログラムをコンパイルします。
javac CharOccurrence.java
次のコマンドで Java プログラムを実行します。
java CharOccurrence
これは、文字列内の文字のカウントを求める従来の解決策です。ここでは、ループを使って文字列の各文字をトラバースし、指定されたインデックスに存在する文字を返す charAt()
メソッドを使って文字を比較し、最後に文字が目的の文字と一致するかどうかをカウントします。
public class CharOccurrence {
public static void main(String[] args){
String str = "abracadabra-banana";
System.out.println(str);
// count occurrence
int count = 0;
for (int i=0; i < str.length(); i++)
{
if (str.charAt(i) == 'a')
{
count++;
}
}
System.out.println("occurrence of a: "+count);
}
}
ファイルを保存して閉じます。次のコマンドで Java プログラムをコンパイルします。
javac CharOccurrence.java
次のコマンドで Java プログラムを実行します。
java CharOccurrence
この実験では、Java の文字列内の文字の出現回数をカウントするための 3 つの異なる方法を学びました。replace()
、chars()
および filter()
メソッドと、カスタム ループを使用しました。すべての方法はとても使いやすいものです。上記のいずれかの方法を、ご都合やユースケースに応じて使うことができます。