11

Java コードがコンパイルされない理由がわかりません。何か提案をいただければ幸いです。

   String rank = card.substring(0,1);
    String suit = card.substring(1);
    String cards = "A23456789TJQKDHSCl";
    String[] name = {"Ace","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King","Diamonds","Hearts","Spades","Clubs"};
    String c ="";
    for(int a = 0, b = 1; a<cards.length-1; b=a+1; a++;){
        if(rank===cards.substring(a,b){
            c+=name[a];
        }


    }
    system.out.println(c);
4

9 に答える 9

28
  1. ではcards.length()ありませんcards.length(lengthは のメソッドjava.lang.Stringあり、属性ではありません)。

  2. ではSystem.outなく (大文字の 's')system.outです。java.lang.Systemを参照してください。

  3. それは

    for(int a = 0, b = 1; a<cards.length()-1; b=a+1, a++){
    

    いいえ

    for(int a = 0, b = 1; a<cards.length-1; b=a+1; a++;){
    
  4. 構文的には、 ではif(rank == cards.substring(a,b)){ありませんif(rank===cards.substring(a,b){(ダブルイコール、トリプルイコールではありません。閉じ括弧がありません)。ただし、2 つの文字列が等しいかどうかを比較するには、次を使用する必要がありますequals()if(rank.equals(cards.substring(a,b))){

おそらく、Java 開発用の統合開発環境 (だけでなく) であるEclipseのダウンロードを検討する必要があります。Eclipse は、入力中にエラーを表示し、これらを修正するためのヘルプも提供します。これにより、Java 開発の開始がはるかに簡単になります。

于 2013-02-07T13:43:51.083 に答える
8

これの代わりに : for(int a = 0, b = 1; a<cards.length-1; b=a+1; a++;){

そのはず

for(int a = 0, b = 1; a<cards.length()-1; b=a+1, a++){
                                     ^         ^    ^  
                                     |         |    |  
                                     |         |    |  
            -------------------------------------------Note the changes
           |                    
           v                                                  |
   if(rank==cards.substring(a,b){                             |
-------------------------------------------------------------                                  
|
v
System.out.println(c); //capital S in system
于 2013-02-07T13:43:52.623 に答える
5

forループで使用できるセミコロンは2つだけです。

  1. 最初のセミコロンの前は初期化部分です。
  2. 最初のセミコロンの後と2番目のセミコロンの前は条件部分です(ブール値になる必要があります)。
  3. 2番目のセミコロンの後には可変操作部分(インクリメント/デクリメント部分)があります。

複数の変数の初期化または複数の変数の操作を行っている場合は、それらをコンマ(、)で区切ることで実現できます。

for(int i=0, j=5; i < 5; i++, j--)

注:コンマで区切られた複数の条件は許可されていません。

for(int i=0, j=5; i < 5, j > 5; i++, j--) // This is NOT allowed.
于 2013-02-07T14:00:08.133 に答える
1

私はこれがうまくいくと思います:

    String rank = card.substring(0,1);
    String suit = card.substring(1);
    String cards = "A23456789TJQKDHSCl";

    String[] name = {"Ace","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Jack","Queen","King","Diamonds","Hearts","Spades","Clubs"};
    String c ="";
    for(int a = 0, b = 1; a<cards.length()-1; b=a+1, a++ )
    {
        if( rank.equals( cards.substring(a,b) ) )
        {
            c+=name[a];
        }


    }
    System.out.println(c);
于 2013-02-07T13:48:48.170 に答える
1

for ループが間違っています。試す :

for(int a = 0, b = 1; a<cards.length()-1; b=a+1, a++){

また、 のSystem代わりにsystemとの==代わりに===.

しかし、あなたが何をしようとしているのかわからない。

于 2013-02-07T13:43:28.930 に答える
0

for ループには 3 つのパラメーターしか含めることができません。4 を使用しました。何を達成したいのか、もう一度質問してください。

于 2013-02-07T13:43:38.713 に答える
0

増分もコンマで区切ります。

for(int a = 0, b = 1; a<cards.length-1; b=a+1, a++)
于 2013-02-07T13:43:41.007 に答える
0

この行を変更

for(int a = 0, b = 1; a<cards.length-1; b=a+1; a++;){ 

for(int a = 0, b = 1; a<cards.length-1, b=a+1; a++){
于 2013-02-07T13:43:59.850 に答える
0

ループの形式が正しくありませforん — 4 つの引数を取ることはできず、2 つの引数を組み合わせることもできません;

使用する:

for(int a = 0, b = 1; a<cards.length-1; a++)
于 2013-02-07T13:45:37.667 に答える