【问题标题】:How to set min/max lenght of Random Name created?如何设置创建的随机名称的最小/最大长度?
【发布时间】:2021-08-14 04:22:21
【问题描述】:

当我运行这个程序时,当通过单击按钮生成随机名称时,模拟器只会给我一个字母。 我想将字符串中生成的字符的最小长度名称设置为 4,最大值设置为 8。因此,该按钮从字符串中生成一个随机名称,最小为 4,最大为 8 个字母。找不到任何解决方案。

public class MainActivity extends AppCompatActivity {
private Switch Switch;
private EditText Name;
private Button btn;
private String items[] = {"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","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","1","2","3","4","5","6","7","8","9","0"};

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





Switch = (Switch) findViewById(R.id.switch1);
    Switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            openActivity2();
        }
    });


    Name = findViewById(R.id.editTextTextPersonName);
    btn = findViewById(R.id.button);

    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Random rndm = new Random();
            int i = rndm.nextInt(items.length);
            Name.setText(items [i]);
        }
    });





}



public void openActivity2() {

    Intent intent = new Intent(this, MainActivity2.class);
    startActivity(intent);
}
}

提前致谢。

【问题讨论】:

    标签: java android android-studio


    【解决方案1】:

    您正在使用Name.setText(items[i]),它仅将项目数组中的一个字符设置为名称,这就是为什么您在单击按钮时会收到一个字母。

     public class MainActivity extends AppCompatActivity {
        private Switch Switch;
        private EditText Name;
        private Button btn;
        private String items[] = {"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","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","1","2","3","4","5","6","7","8","9","0"};
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        
        
        
        
        
        Switch = (Switch) findViewById(R.id.switch1);
            Switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    openActivity2();
                }
            });
        
        
            Name = findViewById(R.id.editTextTextPersonName);
            btn = findViewById(R.id.button);
        
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Random rndm = new Random();
    
                    String out = "";
    
                    // here length is will be a random number between 4 and 8 
    
                    // this is used to get random number between 4(inclusive) and 9(exclusive)
                    int low = 4;
                    int high = 9;
                    int length = rndm.nextInt(high-low) + low;
                    
                    for (int i=0;i<length;i++) {
                      int idx=rndm.nextInt(items.length);
                      out += items[idx];
                    }
                   
                   
                    Name.setText(out);
    
    
                }
            });
        
        
        
        
        
        }
    
    
    
    public void openActivity2() {
    
        Intent intent = new Intent(this, MainActivity2.class);
        startActivity(intent);
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 2022-10-04
      • 2021-11-11
      • 2010-09-30
      • 2016-03-09
      • 1970-01-01
      相关资源
      最近更新 更多