私は初心者の Java 開発者です。Java を使用して、段落内の回文語の数を数えるコードを書きたいと考えています。
ユーザーは、できるだけ多くの文を含む段落を入力できます。各単語は空白で区切られ、各文はピリオドで区切られます。単語の直前または直後の句読点は無視され、単語内の句読点はカウントされます。
サンプル入力:Otto goes to school. Otto sees a lot of animals at the pets store.
サンプル出力:Otto = 2 a = 1 Sees = 1
3 に答える
ファイルをプログラムに読み込み、すべてのスペースでエントリを分割し、それらを arraylist に入力します。その後、配列リストの各値に回文アルゴリズムを適用し、回文であった単語とその出現箇所を追跡します (たとえば、2D 配列、または両方の値を保持するオブジェクトを含む配列リスト)。
これらの手順を実行したら、ほぼ完了です。あなた自身の試みを示すと、おそらくより具体的なヘルプが表示されます。
Javaでコレクションを使用すると、プログラミングの労力が軽減されます
アルゴリズム :
段落を文字列変数に読み取ります
トークンを ' ' (スペース) として使用して文字列を分割し、
StringTokenizer
各単語を ArrayList に追加します (セットは重複を許可しません)。指定された文字列が回文かどうかに基づいてブール値 (TRUE/FALSE) を返すメソッドを作成します。
回文文字列の値とそれが繰り返される回数を保持する Map を定義します。
はいの場合は、キーを回文文字列として、値を回数としてマップに文字列を追加します。それ以外の場合は、文字列をマップに追加しません
すべての単語が終了するまで同じロジックを繰り返します
サンプルコード:
` public class StringPalindromeCalculator {
private Map<String, int> wordsMap = new HashMap<>();
private List<String> wordsList = new ArrayLiat<>();
private boolean isPalindrome(String inputString) {
// write String palindrome logic here
}
public Map<String, int> findPalindromeWords(String completeString) {
StringTokenizer wordTokenizer = new StringTokenizer(completeString, ' ');
while(wordTokenizer.hasMoreTokens()) {
wordsList.add(wordTokenizer.nextToken());
}
for(String word : wordsList) {
if(isPalindrome(word)) {
if(wordsMap.containsKey(word)) {
// increment the value of word
}
} else {
// put the word into Map and return the map value
}
}
return wordsMap;
}
}`
お役に立てれば :)
public class 回文 {
int count = 0;
public static void main(String[] args) {
String a = "malayalammadyoydaraarasdasdkfjasdsjhtj";
Palindrome palindrome = new Palindrome();
palindrome.countPalin(a);
}
private int countPalin(String str) {
for (int i = 0; i < str.length() - 1; i++) {
char start = str.charAt(i);
String st = "";
st += start;
for (int j = i + 1; j < str.length(); j++) {
st += str.charAt(j);
StringBuffer rev = new StringBuffer(st).reverse();
if (st.equals(rev.toString()) && st.length() > 1) {
System.out.println(st.toString());
count++;
}
}
st = "";
}
System.out.println("Total Count : " + count);
return count;
}
}