【问题标题】:How can I assign a value to a an integer when a certain character appears in an array?当某个字符出现在数组中时,如何为整数赋值?
【发布时间】:2023-04-07 19:27:01
【问题描述】:

给定字符串[] c 我正在尝试这样做,以便如果数组 10 中存在“X”,则将其添加到 int xvalue。否则会发生其他事情。 这是我到目前为止尝试过的,我不确定到底出了什么问题。

if (i==c.length - 1 && !c[i].contains("X") )
  sum += 0 ;
else if (c[i].contains("X"))
xvalue+=10;
else
  sum += (Integer.parseInt(c[i])*pos) ;

此外,“X”只出现在数组的最后一个值中。 感谢您的帮助。

【问题讨论】:

标签: java arrays string


【解决方案1】:

不知道你的实际逻辑让它变得简单

if (c[i].contains("X") )
xvalue+=10
else
sum += (Integer.parseInt(c[i])*pos) 

印刷有什么价值?假设 i 是一个循环值..

编辑:它将检查值 X 是否然后添加 10 值,如果它的其他值它的转义...

public void xCheck(String c[]){
    int sum = 0;
    int xValue = 0;
    int pos = 1;
    for (int i = c.length - 1; i >= 0; i--) {
        if (c[i].contains("X")) {
            xValue += 10;

        } else if (pos == 1) {
            pos++;
            continue;
        } else {
            //if(sum==0)
            sum += pos * (Integer.parseInt(c[i]));
        }
        pos++;
    }
    System.out.println(xValue);
    System.out.println(sum);
}

【讨论】:

  • 这似乎也不起作用,但要回答你的问题,If 语句的第一部分应该是这样,所以数组的最后一个值被忽略,除非它是“X”
  • 好吧,如果我没记错的话,你的 if 语句检查的最后一个字符不是 X。好吧,如果你总是传递值 CAR 总是 C 和 A,你的默认 else 块来命中和 R 用于 if 条件。如果你传递价值 FOX。对于第一个 F 和 O,它将命中默认 else,对于 X,它应该命中 else if...
  • 很抱歉我没有真正展示 pos 是什么。我想要做的更像是如果数组是 {"1","2","X"} 它应该将 10 添加到整数 xvalue 并添加 (2*2) 然后添加 (1*3) (pos表示数组中从右到左的位置)所以X在位置1,2在位置2等等。如果它是{“1”,“2”,“3”}它应该基本上忽略“3”并添加0 求和然后继续 2 和 1。
  • 据我了解,请检查实际答案的编辑部分。
  • 感谢您的帮助。我认为通过文本进行交流有点太复杂了。我认为你给我的可能有用,但我必须改变一些东西并尝试一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多