2

テキスト行を読み取り、母音、子音、スペース、句読点の数をカウントする文字カウンター プログラムを作成しています。

また、スイッチを使用してそれぞれのカウントをインクリメントする必要があります。プログラムで switch ステートメントを使用するのは初めてなので、ループ内で正しく使用しているかどうかわかりません。

私が解決できる限り、問題はコンパイル時のループにありますが、実行するとターミナルでハングするため、ループが正しく終了していないと想定しています。

文字数を数える方法が非常に基本的であることは知っていますが、それは指示どおりです。

ありがとう

import java.util.Scanner;
import java.io.*;

public class CharacterCounter2
{
public static void main(String args[])
{

Scanner scan = new Scanner(System.in);
String line = new String(scan.nextLine());

String cons = new String ("bcdfghjklmnpqrstvwxyz");
String vowels = new String ("aeiou");
String space = new String (" ");
String punct = new String(",.;:");

int consCount = 0, vowelCount = 0, spaceCount = 0, pCount = 0, inx = 0;
char ch = line.charAt(inx);

while (inx <= line.length()-1)

{
if (cons.indexOf(line.charAt(inx)) != -1)
ch = 'C';
else 
if (vowels.indexOf(line.charAt(inx)) != -1)
ch = 'V';
else
if(line.equals(space))
ch = 'S';
if (punct.indexOf(line.charAt(inx)) != -1)
ch = 'P';

switch (ch)
{
case 'C':
consCount += 1;
break;

case 'V':
vowelCount += 1;
break;

case 'S':
spaceCount += 1;
break;

case 'P':
pCount += 1;

default:
break;

}

inx = inx ++;
ch = line.charAt(inx);
}



System.out.println("contains" +consCount+" consonants, "+vowelCount+" vowels, " + spaceCount+" spaces" + pCount + "punctuation");
}
}
4

1 に答える 1

3

あなたはこれを書きたくない:

inx = inx ++;

あなたの言いたいことは単純に

inx++;

少なくともループを終了させる必要があります。それ以外の場合は、スペースカウントロジックが間違っている場合を除いて機能する可能性があります。

于 2012-11-16T00:32:23.107 に答える