जनरेट कर रहा है एक यादृच्छिक पूर्णांक

वोट
3

मैं एक उपयोगकर्ता इनपुट मैं के साथ एक यादृच्छिक आर पूर्णांक के रूप में है कि तुलना करने के लिए कोशिश कर रहा हूँ। लेकिन मैं प्रकार मेल नहीं खाता त्रुटियों हो रही है। मैं Integer.parseint (आर) का उपयोग करके पूर्णांक के रूप में रैंडम पार्स करने की कोशिश की लेकिन फिर भी है कि मुझे एक प्रकार मेल नहीं खाता त्रुटि देता है। मैं खेल () फ़ंक्शन में यह सब कर रहा हूं।

package com.myapplication;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import java.util.Random;


public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }



    public void game(View view) {
        int a = 73;
        TextView textv = (TextView) findViewById(R.id.textView2);
        EditText editText = (EditText) findViewById(R.id.editText);
        String eText=editText.getText().toString();

        int guess = Integer.parseInt(eText);

        if (guess == a){

            textv.setText(You Won);
            Random r = new Random();
            a = Integer.parseInt(r);

        }
        else if(guess < a){

            textv.setText(Higher);
        }

        else if (guess > a){

            textv.setText(Lower);
        }


    }
}
26/07/2015 को 08:43
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
0

आप का उपयोग करना चाहिए a = r.nextInt()

देखें जावा प्रलेखन

26/07/2015 को 08:46
का स्रोत उपयोगकर्ता

वोट
0

कृपया देखें इस पोस्ट में संदर्भ के लिए

public static int randInt(int min, int max) {

Random rand = new Random();
return rand.nextInt((max - min) + 1) + min; 
}
26/07/2015 को 08:54
का स्रोत उपयोगकर्ता

वोट
4

के लिए यादृच्छिक int आप इस का उपयोग कर सकते

Random r = new Random();

int a = r.nextInt((100-10)+1)+10;

इस 10 से 100 के बीच एक यादृच्छिक पूर्णांक उत्पन्न

सामान्य उपयोग में nextIntनंबर दो के बीच यादृच्छिक मेकअप के लिए इस तरह

r.nextInt((max-min)+1)+min;

मुझे लगता है कि मैं जानता हूँ कि आप क्या चाहते हैं

पूर्ण कोड, पहले एक यादृच्छिक पूर्णांक उत्पन्न aऔर जब में क्लिक buttonकॉल game, में gameजाँच करता है, तो बराबर उपयोगकर्ता संख्या के लिए aतो संदेश को दिखाने के और कुछ नई संख्या उत्पन्न ...

public class MainActivity extends ActionBarActivity {

    EditText editText;

    Random r = new Random();
    int a;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_send);

        /*--------Generate First Random int--------*/
        a = r.nextInt((100-10)+1)+10;
        Log.i("LOG", "Random --> " + a);
        /*-----------------------------------------*/

        editText =(EditText) findViewById(R.id.editText);

        Button button=(Button) findViewById(R.id.button);

        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                game(arg0);
            }
        });
    }

    public void game(View view) {

        TextView textv = (TextView) findViewById(R.id.textView2);
        String eText=editText.getText().toString();

        int guess = Integer.parseInt(eText);

        if (guess == a){

            textv.setText("You Won");
            a = r.nextInt((100-10)+1)+10;
        }
        else if(guess < a){

            textv.setText("Higher");
        }

        else if (guess > a){

            textv.setText("Lower");
        }
    }
}

» एंड्रॉयड में रैंडम के बारे में अधिक जानकारी के लिए इस लिंक पर जाएं

http://developer.android.com/reference/java/util/Random.html

26/07/2015 को 08:56
का स्रोत उपयोगकर्ता

वोट
2

इस कोड के साथ:

Random r = new Random();
a = Integer.parseInt(r);

आप वर्ग प्रकार का ऑब्जेक्ट पैदा कर रहे java.util.Randomहै, जो एक है यादृच्छिक संख्या जनरेटर (नहीं एक यादृच्छिक संख्या के रूप में आप सोच सकते हैं)। तो फिर तुम करने के लिए इसे पारित करने के लिए कोशिश कर रहे हैं java.lang.Integer.parseInt(String)विधि है, जो केवल एक स्वीकार कर सकते हैं String। आपका प्रयास स्पष्ट रूप से विफल रहता है।

आप शायद कॉल करना चाहते हैं java.util.Random.nextInt()के बजाय एक यादृच्छिक पूर्णांक प्राप्त करने के लिए विधि:

int i = new Random().nextInt();

वैसे भी यह पार्स करने के लिए कोई ज़रूरत नहीं।

( लाइव उदाहरण )

26/07/2015 को 09:00
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more