【问题标题】:skip characters/numbers in JAVA跳过 JAVA 中的字符/数字
【发布时间】:2017-11-16 20:35:12
【问题描述】:

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

示例(非列表):

当我从 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++;
    }
}

第一个角色我完全迷失了......

【问题讨论】:

  • if(String.valueOf(yourInt).contains("3")) 应该可以解决问题。

标签: java numbers logic


【解决方案1】:

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

for(int i = startingNum; i <= endingNum; i++) {
    if (!String.valueOf(i).contains("3")) { // Here
        counter++;
    }
}

【讨论】:

    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      相关资源
      最近更新 更多