检查号码是否存在,如果存在 - 获取另一个号码

时间:2014-05-13 08:57:14

标签: android string

我使用数据库只需按一下按钮即可显示随机消息。

每次按下按钮,都会生成一个随机数,并显示与该数字对应的消息。 当然,相同的消息可以出现两次,因为可以生成两次相同的数字。

所以我正在创建一个字符串,当按下按钮时,我会连接每个数字。

如果新的随机数在String中,那么我想得到另一个数字。如果那个数字在那个字符串中,我想得到另一个数字等等(回归?)。

我还希望有一个可以更改的全局计数,因此如果String达到9个数字的大小,它将被重置为""。

 String randomList; //global
    final int MAX_STRING_LENGTH = 9;

     Integer randomNumber = getRandomMessage(messages.size());


  if(randomList.length() > 0) 
  {

    if(!randoms.contains(randomNumber.toString()))
    {
            messageText.setText(messages.get(randomNumber));
    }                

  }

3 个答案:

答案 0 :(得分:0)

我认为你可以更好地使用boolean数组。您可以使用SharedPreferences类存储布尔数组。 boolean数组更灵活,您可以在固定时间内检索值。当您有更多随机消息时,您也可以轻松地将其放大。

答案 1 :(得分:0)

创建一个包含9个元素的布尔数组

boolean[] check = new boolean[9];

每次使用数字时,请将check [number]设置为true

void useNumber(int number){
     check[number] = true;
}

检查您是否已使用此号码

boolean checkNumber(int number){
     return check[number];
}

重置支票

void resetCheck(){
     for(int i = 0; i < check.length; i++) check[i] = false;
}

编辑: 获取给定数字的字符串,必要时重置检查;

String getString(int number){
   if(usedString == check.length){
     resetCheck();
     usedString = 0;
   }
   if(checkNumber(number)){
     return getString(getRandomNumber());
   }else{
     usedString++;
     return strings[number];
   }
}

答案 2 :(得分:0)

做一个简单的技巧希望这对你有用

buttonRandom.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        Collections.shuffle(messages);
        messageText.setText(messages.get(0));

    }
});