-5

入力したユーザー文字列を母音を_に置き換えて出力するプログラムを作成しようとしています。コンパイルエラーのためにプログラムが印刷されないif部分で問題が発生しています。

import java.util.Scanner;
public class mathpowers {
    public static void main(String args[])
    {
        Scanner a = new Scanner (System.in);
        System.out.print("Enter string: ");
        String s = a.nextLine();
        int count = 0;
        for (char c : s.toCharArray())
        {
            if (c=='a' || c=='e' || c=='i' || c=='o' || c=='u') {
            {
                c = '_';
                System.out.println (c[i]);
            }
        }
        System.out.println("Your string has " + count + " upper case letters.");
    }
}
4

3 に答える 3

1
System.out.println(c[i]);

する必要があります

System.out.println(c);
于 2013-03-13T21:47:05.817 に答える
1

コードには多くの問題があり、コンパイルされません。

  • に置き換えc[i]ますccは、charではありませんString。(あなたも持っていませんi...
  • 印刷countしていますが、インクリメントすることはありません。
  • 数える場合でも、count印刷時に大文字ではなく母音を数えます。
  • 割り当て"_"c印刷すると、出力は常にになります_

多分あなたはこのようなことをしたいでしょう:

Scanner a = new Scanner (System.in);
System.out.print("Enter string: ");
String s = a.nextLine();
String res = "";
for (char c : s.toCharArray())
{
    if (c=='a' || c=='e' || c=='i' || c=='o' || c=='u') {
        res = res + '_';
    }
    else
        res = res + c;
}
System.out.println(res); //Will contain the string with the vowels replaced with _

または..より良いコード:

Scanner a = new Scanner (System.in);
System.out.print("Enter string: ");
String s = a.nextLine();
String[] vals = {"a", "u", "o", "e", "i"};
for(String val : vals)
    s = s.replaceAll(val, "_");
System.out.println(s);
于 2013-03-13T21:48:23.150 に答える
0

importまず、最初の行の前にキーワードが必要ですjava.util.Scanner;{また、以下のコードで余分なものを削除する必要があります

if (c=='a' || c=='e' || c=='i' || c=='o' || c=='u') {
{ //<- This is not needed as you have another on on the end of the line above
c = '_';
System.out.println (c[i]);
}
}

またc、上記のコードにはchar配列ではないため、呼び出す必要があるだけでなく、呼び出す前にcにSystem.out.println (c);割り当てるだけなので、出力するだけです。もう1つの問題は、によって作成された配列の値のみを変更するため、forループの前にこの呼び出しを行い、ループの後にそれを使用してに割り当てる新しい文字列を作成する必要があることです。'_'_s.toCharArray()s

最後に、増加することはないcountので、最後に印刷すると常に0と表示されますが、後で解決すると思います。

EclipseNetBeansなどの統合開発環境(IDE)をまだ使用していない場合は、ワープロがスペルや文法の間違いを強調するように、これらのバグを強調するため、ダウンロードすることをお勧めします。

于 2013-03-13T21:50:19.530 に答える