-3

出力に条件が満たされた回数が必要なため、条件が満たされるたびにインクリメントする変数を宣言しようとしています。

変数:

String[] letters = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};

-----this part is inside an if-----
String yourname = request.getParameter("yourname").toLowerCase();
            String crushname = request.getParameter("crushname").toLowerCase();
            yourname = yourname.replace(" ","");
            crushname = crushname.replace(" ","");
            String[] a_yourname = yourname.split("(?!^)");
            String[] a_crushname = crushname.split("(?!^)");

基本的に私はJavaでこのPHPコードを実行しようとしています:

if($yourname[$x] == $letters[$y]){
        if($yourname[$x] == 'a'){
            $y_a++;
        }
        if($yourname[$x] == 'b'){
            $y_b++;
        }
        if($yourname[$x] == 'c'){
            $y_c++;
        }

}

これは私のJavaの部分です:

int y_a=0;
int y_b=0;
            for(int x=0;x<a_yourname.length;x++){
                for(int y=0;y<letters.length;y++){
                    if(a_yourname[x] == letters[y]){
                            if(a_yourname[x] == "a"){
                                    y_a++;
                            }
                            if(a_yourname[x] == "b"){
                                    y_b++;
                            }

欠落している終了タグを気にしないでください。y_aを出力するたびに常に0が返されます。これは、0を保持するように初期化するためだと思いますが、初期化された値が増分された値を上書きしないようにするにはどうすればよいですか?

これは一部の人にとっては非常に単純なことですが、私は本当にPHPの人であり、Javaについてはあまりよく知りません。

4

3 に答える 3

2

a_yourname [x]=="a"はJavaでは機能しません。代わりにa_yourname[x].equals( "a")が必要です。

または、a_yournameがcha​​rの配列の場合は、a_yourname [x]=='a'です。

于 2013-01-26T08:42:19.690 に答える
1

基本的な問題は、を使用して文字列を比較しようとすることです==

ただし、 Java==では、オブジェクトのID(文字列などのオブジェクトで使用する場合)を比較するだけで、その内容は比較しません。

Javaでオブジェクトの内容を比較するには、equals()(等しい場合)またはcompareTo()(順序付けの場合)を使用します。したがって、あなたの場合、次のように言う必要があります。

if( a_yourname[x].equals( letters[y] ) ){
    if( "a".equals( a_yourname[x] ) ){
      y_a++;
    }
    if( "b".equals( a_yourname[x] )){
      y_b++;
    }
}

あなたが本当に文字列をここで比較することを意味すると仮定します。

比較しcharたり、単一の文字を使用したりする場合は、向きを変えて"その"a"よう'にマークします。

于 2013-01-26T08:46:29.933 に答える
0

コードがある関数から変数をデカレートするだけです。

例えば:

int y_a=0;
int y_b=0;

void function()
{
 for(int x=0;x<a_yourname.length;x++){
                for(int y=0;y<letters.length;y++){
                    if(a_yourname[x] == letters[y]){
                            if(a_yourname[x] == "a"){
                                    y_a++;
                            }
                            if(a_yourname[x] == "b"){
                                    y_b++;
                            }
}
于 2013-01-26T08:46:23.293 に答える