【问题标题】:Value with All number except n or n number in Java [closed]Java中除n或n数字外的所有数字的值[关闭]
【发布时间】:2017-02-03 03:08:20
【问题描述】:

我的 android 应用程序中的 Logic Java 有一点问题。我需要用这个条件过滤数组:

Category A = 0 , B = 1 , C = 2 , D = AllNumber except 1 and 2

这是按钮 OnClickListener :

buttonAll.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                filteredSubGroupList = (ProgramMethod.filterArray(subGroupList, "main-group-nr", "" ,false));
                genericAdapterSubCategory.notifyDataSetChanged();
                genericAdapterArticle.notifyDataSetChanged();
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });

    buttonFood.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                filteredSubGroupList = (ProgramMethod.filterArray(subGroupList, "main-group-nr", Integer.toString(1) ,true));
                genericAdapterSubCategory.notifyDataSetChanged();
                genericAdapterArticle.notifyDataSetChanged();
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });

    buttonBeverage.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                filteredSubGroupList = (ProgramMethod.filterArray(subGroupList, "main-group-nr", Integer.toString(2) ,true));
                genericAdapterSubCategory.notifyDataSetChanged();
                genericAdapterArticle.notifyDataSetChanged();
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });

    buttonOther.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            // D Value In here 

        }
    });

如何获得 D 值? ,我读了thisthis 但我没有解决方案,提前谢谢..

【问题讨论】:

  • 请显示您现有的执行任何过滤的代码
  • @cricket_007 我只想知道如何获得D值
  • 你明白了,我添加我的代码
  • 如果没有minimal reproducible example 的问题以及对输入和预期输出的清晰描述,很难知道您在问什么。你有什么 JSON? subGroupList 是什么?
  • filterArray 有 3 个参数,subGroupList 是我的 JSON 中的数组,main-group-nr 是我想要获取值的 JSONarray 中的字段,最后一个参数是我想要过滤的数字,如果 D 条件是 AllNumber 除了 1 和 2 如何获得该值

标签: java android


【解决方案1】:

根据您发送的链接,您似乎想要生成一个符合某些特定条件的随机数。为此,您必须不断生成随机数,直到获得适合您的数字。

示例:(根据您所说的条件)

Random random = new Random(); //your random number generator

int value;
int max = 10; //max value you want to get, exclusive
int min = 1 //minimum value you want to get, inclusive

do
{
    value = random.nextInt(max - min) + min; //generates a random number between min and max
}
while(value == 1 || value == 2); //will restart if value is 1 or 2, as you asked

【讨论】:

  • 我认为我不需要最大值,因为 D 值可以是除 1 和 2 之外的任何数字,或者我可以使用无限数字设置最大值吗?
  • @Mario 你可以使用 Integer.MAX_VALUE
  • @MarioMargoPradipta 没有什么是“无限的”。 Java 中的任何整数都应该在Integer.MAX_VALUEInteger.MIN_VALUE 之间。你确定这就是你要找的吗?如果是这样,请将 min 和 max 替换为这两个值,但按照设计,这没有多大意义。
【解决方案2】:

假设您在列表中有一些 Category 类,并且可以使用某些函数来直接过滤列表或创建一个新列表....

List<Category> list = new ArrayList<Category>();

... 
List<Category> filtered = new ArrayList<Category>();
for (Category c : list) {
    if (c.a == 0 && c.b == 1 && c.c == 2 && !(c.d == 1 || c.d == 2))  {
        filtered.add(c);
    } 
} 

或者我不明白你在问什么“获得 D 值”

【讨论】:

  • getting the D value 我的意思是我想知道,我怎样才能得到除 n 之外的所有数字,就是这样
  • 再次,不清楚“n number”是什么意思
  • -.- 看看我的条件,D 可以是除 1 和 2 之外的任何数字。我怎样才能过滤该数字(等 0、4、5、6、7、n、n、n , 除了 1 和 2)
  • 根据您的要求,听起来您需要一个包含非法值的 Hashset(因为它与要保留的东西相反),然后使用 contains 方法检查并过滤掉您不使用的整数不想
【解决方案3】:

我很抱歉我的英语不好,所以你们都不能理解问题。我已经用这段代码解决了我的问题

 for(int i=3; i<filteredSubGroupList .length(); i++){
                try {
                    filteredSubGroupList = (ProgramMethod.filterArray(subGroupList, "main-group-nr", String.valueOf(3), false));
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

LOGCAT:

I/System.out: 3
I/System.out: [{"zknr":98,"bezeich":"CIGARETTE","fibukonto":"14","departement":1,"betriebsnr":98,"main-group-nr":3},{"zknr":700,"bezeich":"DISCOUNT","fibukonto":"00","departement":1,"betriebsnr":0,"main-group-nr":30}]

这让我得到了除了 1 和 2 之外的所有整数。再次抱歉我的英语不好,感谢每一个建议和回答。

【讨论】:

    猜你喜欢
    • 2021-05-09
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 2013-03-23
    • 2021-04-02
    • 1970-01-01
    相关资源
    最近更新 更多