2017-10-17 17 views
-2

私はJavaの初心者で、charAt()でユーザー入力を印刷するのに問題があります。私は、ユーザー入力を受け取り、そのテキストの母音の前に "op"を追加するプログラムを作成する必要があります。 (例:Userinput - > "Beautiful"は "Bopeautopifopul"と翻訳されます)これを書く方法を理解するのは苦労しています。これまで私はこの小さなビットを思いついた。 (それは大文字と小文字を区別しなければならない場合は、最初(?i)を使用)グルーピング続いopに置き換え -charAt()でユーザー入力を印刷していますか?

import java.util.Scanner; 
public class oplang { 
static Scanner userinput = new Scanner(System.in); 
public static void main(String[] args) { 

    char c ='a'; 
    int n,l; 

    System.out.println("This is an Openglopish translator! Enter a word here to translate ->"); 
    String message = userinput.nextLine(); 
    System.out.println("Translation is:"); 
    l = message.length(); 

    for (n=0; n<l; n++); 
    { 
     c = message.charAt(); 
     if (c != ' '); 
    { 
     System.out.println(" "); 
    } 
    c++; 
} 
}} 
+2

'C = message.charAt(N)のように書かれ;' –

+1

https://ideone.com/FoVdYs – shmosel

+2

共場合'' op "を追加する必要がありますが、どのようにしてコード内に単一の' op'を見つけることができませんか? ---あなたの 'for'文と' if'文がうまくいくためには、その2行の最後に ';'を取り除いてください。 – Andreas

答えて

1

Iは、グループの任意の母音、正規表現を使用します。同様に、

System.out.println("Translation is:"); 
System.out.println(message.replaceAll("(?i)([aeiou])", "op$1")); 

あなたは正規表現を使用できない場合は、その後、私は

System.out.println("Translation is:"); 
for (char ch : message.toCharArray()) { 
    if ("aeiou".indexOf(Character.toLowerCase(ch)) > -1) { 
     System.out.print("op"); 
    } 
    System.out.print(ch); 
} 
System.out.println(); 

ようfor-eachループと何かを好むだろうと、あなたは絶対にcharAtを使用する必要がある場合、それはすることができ

System.out.println("Translation is:"); 
for (int i = 0; i < message.length(); i++) { 
    char ch = message.charAt(i); 
    if ("aeiou".indexOf(Character.toLowerCase(ch)) > -1) { 
     System.out.print("op"); 
    } 
    System.out.print(ch); 
} 
System.out.println(); 
+0

良いですが、私は割り当てにOPがcharAtを使用する必要があると感じています –

+0

@BrunoDelor *嫌な言葉は私にはあまり言い訳がありません。 –

+0

ありがとう@ElliottFrisch! – CMCK

関連する問題