跳过JAVA中的字符/数字

时间:2017-06-14 15:33:22

标签: java numbers logic

如果这些字符/数字存在于一行数字或单词中,我如何同时跳过两个数字或字符相同或相同的数字或字符

示例(不是列表):

当我数到2到14时,我想跳过数字3(在任何位置)

结果将是

2,4,5,6,7,8,9,10,11,12,14

另一个将跳过任何组合中的数字31,其中3和1出现只要两者都存在

这两个例子也适用于角色。

我在做什么

for(int i = startingNum; i <= endingNum; i++){
    if(i "has a" 3){
        skip number;
    }
    else{
        counter++;
    }
}

数字组合

for(int i = startingNum; i <= endingNum; i++){
    if((i "has a" 3) AND (i "has a " 1)){
        skip number;
    }
    else{
        counter++;
    }
}

在我完全迷失的角色......

2 个答案:

答案 0 :(得分:2)

一种方法是将数字转换为字符串并检查它是否包含该字符串作为子字符串:

[value1, value2, value3^value3part2]

答案 1 :(得分:2)

其中一种方法是使用解析结果,例如:

public static Integer isParsable(String text) {
  try {
    return Integer.parseInt(text);
  } catch (NumberFormatException e) {
    return null;
  }
}

...
import java.io.IOException;

public class NumChecker {

    static String[] str = new String[]{"2", "4", "a", "sd", "d5", "6", "7", "8", "a1", "3", "10", "11", "12", "14"};
    static int startingNum = 2;
    static int endingNum = 10;
    static int counter = 0;
    static int mark = 3;

    public static Integer isParsable(String text) {
        try {
            return Integer.parseInt(text);
        } catch (NumberFormatException e) {
            return null;
        }
    }

    public static void main(String[] args) throws IOException {
        for (int i = startingNum; i <= endingNum; i++) {
            Integer num = isParsable(str[i]);
            if (num != null) {
                if (num == mark) {
                    counter++;
                }
            }
        }
        System.out.println(counter);
    }
}

<强>输出:

1