このプログラムは、文字列を入力すると、プログラムはcharAt(0)の各文字をチェックし、 to charAt(文字列の長さ-1) そして有効な文字(AZまたはaz)かどうかを調べます。非文字は、単語区切り文字と見なされます。Javaユーザの入力に基づいて配列の長さを作成する方法と配列に数値を割り当てる方法
カウンタは、次の文字が文字であるたびに増加します。最後の有効な文字(この場合はcharAt(0)としましょう)の無効文字の前に、文字が無効(数字、記号、句読点、スペースなど)で、文字が1になると、カウンタは0にリセットされます。キャラクタは無効です。最初にインデックスが0で始まる配列にカウンタを割り当て、インデックスをインクリメントして次のワード長に割り当てることができます。
このプログラムで作成された単語の数に基づいて配列を作成するにはどうすればよいですか?たとえば、次の文字列を入力すると、配列の長さは7になります。
8個のpro98gram doin8gとは何ですか?
ワード1 =ワード2 =ワード3 =ワード4 =プロ、ワード5 =グラム、ワード6 =ドイン、ワード7 = g。
また、特定の配列インデックスにnumber値を割り当てるにはどうすればよいですか?たとえば、word [a]の場合、aは0,1,2,3,4などです。プログラム。
これまで私が行ってきたことです。
import java.util.Scanner;
public class WordCountInString {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a = 0; // Initial index is 0;
int[] word = new int[a]; // Creating an array.
String string;
System.out.print("Enter a String of Data Please: ");
string = input.nextLine();
int counter = 0;
for (int i = 0; i < string.length(); i++) {
if (string.charAt(i) >= 'a' && string.charAt(i) >= 'z' // Check to see if charAt(i) is a letter.
|| string.charAt(i) >= 'A' && string.charAt(i) <= 'Z') {
counter++; // Counter every time the next char is a letter.
}
else {
word[a] = counter; // Assign the array of index(a) to counter
a++; // Go to the next index.
counter = 0; // Reset the counter to create a new word.
}
}
for (int j = 0; j < word.length; j++) { //Prints out all the arrays.
System.out.println(word[j]); // Print the value of each array.
}
}
}
ほとんどの場合、文字列を2回通らなければなりません。最初に文字数を決定します。あなたは非文字の数を数えることでこれを行うことができます。そして、 'n'が単語の数なら、あなたがする必要のあることに基づいて' new int [n] 'か' new String [n] 'を作成することができます。 'ArrayList'を使うことが許されていれば、それがどれほど大きくなるかを事前に知る必要はないので、それは良いでしょう。しかし、配列を使用する必要がある場合、これは1つの方法です。 – ajb
私はまだインターフェイスについて学んでいないので、私はまだインターフェイスを使用することはできません。しかし、プログラムの実行中にエラーが発生しています。何故ですか? – Majestic
@Majestic多分あなたは、あなたがあなたのコードを手助けするためにどんなエラーを出しているか教えてください。 – AxelH