【问题标题】:Generate a random alphabet [closed]生成随机字母表[关闭]
【发布时间】:2015-12-04 05:13:11
【问题描述】:

如何在android中生成随机数?在我的活动中,它有一个buttontextVieweditText。用户首先需要在 A-D 之间键入一个字母。单击按钮时,它将显示一个字母。 字母不应与输入相同

然后该字母将从列表中删除。

假设列表是{A,B,C,D} 如果用户输入A,系统将显示除A之外的任何字母。假设输出为B,则B将从列表中删除。所以如果再次点击按钮,就不会再显示B了。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Random r = new Random();
        input=(EditText)findViewById(R.id.editText);
        a=input.getText().toString();
        btnNext = (Button) findViewById(R.id.button);
        Name=(TextView)findViewById(R.id.textView);
        btnNext.setOnClickListener(new View.OnClickListener() {  //if next button is clicked
            @Override
            public void onClick(View v) {
                if(a=="A") 
                {
                    //what should write here ? 
                }
                Name.setText(Integer.toString(r.nextInt(100) + 1));
            }
        });
    }

这是我尝试过的,但它是用来生成随机数的。有什么提示吗?谢谢

【问题讨论】:

    标签: java android random


    【解决方案1】:

    最简单的解决方案:

    Random random = new Random();
    int index = random.nextInt(25);
    
    String [] alphabets = {"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"};
    
    String mRandomAlphabet = alphabets[index];
    Log.i("Random Alphabet", mRandomAlphabet);
    

    希望这对您有所帮助。

    【讨论】:

      【解决方案2】:

      您可以从列表中删除输入的字母并从该列表中创建一个随机索引,之后您可以通过该索引获得字母。希望对您有所帮助!

      【讨论】:

        【解决方案3】:

        您可以为此使用类型转换: 1) 创建一个带有 asci 编号的数组。 2) 将输入类型转换为 int 并从数组中删除该数字。 3)然后使用随机函数获取从 0 到 26 的任意数字,即字母的长度,并从数组列表中获取。 4) 现在再次将其类型转换为 char 并显示它。

        【讨论】:

          【解决方案4】:

          当用户输入字母并单击下一步时,从列表中删除字母。这样,您将永远不会显示相同的字母。

          1. arrayList 中有 26 个元素(字母)。
          2. 生成一个介于 0 到 n 之间的随机数(n 最初为 25)。
          3. 获取该索引处的列表项。这将是一个字母表。
          4. 将其从列表中删除。
          5. 生成一个介于 0 和 n-1 之间的随机数。
          6. 重复。

          专业版:适用于多种变体。不仅仅是字母。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-04-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-08-09
            相关资源
            最近更新 更多