java-JAVA连位数字判断如,1234 ,7890,8901,9012求解决

问题描述

JAVA连位数字判断如,1234 ,7890,8901,9012求解决
如题,求高手解答在线等,我现在只实现了,1234这种的不能实现8901这种的,
public static boolean isDescNumeric(String numOrStr) {
boolean flag = true;
for (int i = 0; i < numOrStr.length(); i++) {
if (i > 0) {
int num = Integer.parseInt(numOrStr.charAt(i) + """");
int num_ = Integer.parseInt(numOrStr.charAt(i - 1) + """") - 1;
if (num != num_) {
flag = false;
break;
}
}
}
return flag;
}

解决方案

http://ideone.com/9HehGv
在线运行通过

解决方案二:

 /* package whatever; // don't place package name! */import java.util.*;import java.lang.*;import java.io.*;/* Name of the class has to be ""Main"" only if the class is public. */class Ideone{    public static boolean isDescNumeric(String numOrStr)     {        int start = (int)(numOrStr.charAt(0) - '0');        for (int i = 0; i < numOrStr.length(); i++)        {            int n = (int)(numOrStr.charAt(i) - '0');            if (n != (start + i) % 10) return false;        }        return true;    }    public static void main (String[] args) throws java.lang.Exception    {        // your code goes here        System.out.println(isDescNumeric(""1234""));        System.out.println(isDescNumeric(""8901""));        System.out.println(isDescNumeric(""1345""));    }}

true
true
false

解决方案三:
所有输入都是false
你这是想要做什么判断?

解决方案四:

 public static boolean isDescNumeric(String numOrStr) {    boolean flag = true;    for (int i = 0; i < numOrStr.length() -2; i++) {        int num = Integer.parseInt(numOrStr.charAt(i) + """") + 1;        int num_ = Integer.parseInt(numOrStr.charAt(i + 1) + """") ;        if (num > 9){             num = 1;        }        if (num != num_ ) {            flag = false;            break;        }    }return flag;}

解决方案五:
就只有一种特殊情况,9到0
public static boolean isDescNumeric(String numOrStr) {
boolean flag = true;
for (int i = 0; i < numOrStr.length(); i++) {
if (i > 0) {
int num = Integer.parseInt(numOrStr.charAt(i) + """");
int num_ = Integer.parseInt(numOrStr.charAt(i - 1) + """") - 1;
if(num==9&&num_0==-1)
continue;//结束本次循环
if (num != num_) {
flag = false;
break;
}
}
}
return flag;
}

解决方案六:

 public static boolean isDescNumeric(String numOrStr) {    int start = (int)(numOrStr.charAt(0) + '0');        for (int i = 0; i < numOrStr.length(); i++)        {            int n = (int)(numOrStr.charAt(i) + '0');                if (n != (start + i) % 10) return false;        }        return true;}

解决方案七:
我感觉应该这样吧,和楼上的大同小异,思路都差不多

 public static boolean  isDescNumeric(String numOrStr){     //初始化标志位,默认所有的字符串都是连位的     boolean isDesc = true;     //将字符串转为数组,方便取用     char[] numArr = numOrStr.toCharArray();     //循环数组,判断是否为连位     for(int i=0;i<numArr.length-1;i++){        //当前字符位置        int number = Integer.parseInt(numArr[i]);        //数字当前位置的下一个        int numberNext = Integer.parseInt(numArr[i+1]);        //开始判断是否为连位        int next = numberNext-1;        //若当前位置为0,那么让它减去1后等于9        if( next == -1){            next = 9;        }        if(number != next){            isDesc = false;            break;        }     }     return isDesc; }

解决方案八:
不想写循环,换种思路玩玩。用空间来换,入参长度很大就要小心内存了。

 public class Test {    public static boolean isDescNumeric(String numOrStr){        String template = ""0123456789"";        int size = (numOrStr.length() / template.length()) + 2;        template = new String(new char[size]).replace("""" template);        return template.contains(numOrStr);    }    public static void main(String[] args) {        System.out.println(isDescNumeric(""1234""));        System.out.println(isDescNumeric(""8901""));        System.out.println(isDescNumeric(""1345""));    }}
时间: 2024-11-08 18:59:25

java-JAVA连位数字判断如,1234 ,7890,8901,9012求解决的相关文章

图片-Android中 界面加入计时器 来回切换的过程中 数字跳转的速度越来越快 求解决

问题描述 Android中 界面加入计时器 来回切换的过程中 数字跳转的速度越来越快 求解决 Fragment + ViewPager 切换中 求解决 是他一起在生成新的 让handler多次执行吗 要加判断还是怎么写 求大神帮忙 解决方案 handler 没出完整 我觉得是计时器写法问题啊 他一直在生成新的 要加判断吗 还是 写try catch? 解决方案二: 我没有写过安卓,但根据经验,计时器越来越快的一个原因可能是刷新的时候,前一个计时器没有清空 解决方案三: 多个timer在发送msg

算法-java有1234个数字能组成多少个有两个重复的3位数字

问题描述 java有1234个数字能组成多少个有两个重复的3位数字 java有1234四数字能组成多少个有两个重复的3位数字,java有1234四数字能组成多少个有两个重复的3位数字,java有1234四数字能组成多少个有两个重复的3位数字 解决方案 2 6*C 1234 解决方案二: 6*C下面是1234,上面是2 解决方案三: 如果我没理解错你的意思,那么这题是一个从四个数字中选出两个进行三位数字的排列组合的问题.根据大学(还是高中?)的排列组合知识就是: C2/4 乘以 3 =36种,具体

java 编程-java问题~数字判断!~~~~~

问题描述 java问题-数字判断!----- 求教控制台随机输入一个数 判断是几位数? 把各位上的数字相加和是多少? 把数字倒序输出? 判断是否回文数? 解决方案 大致可以这样写 import java.io.IOException; import java.util.Scanner; /** * Created by obo on 16/3/13. */ public class Test { public static void main(String []args) throws IOEx

javascript-java script 语句,判断用户名必须为8位数字的语句怎么写?

问题描述 java script 语句,判断用户名必须为8位数字的语句怎么写? 我在做一个用户注册页面,想用java script 语句,判断用户名必须为8位数字,这个语句怎么怎么写? 解决方案 <!DOCTYPE html> <html> <script type="text/javascript"> function validate(){ var reg = /^d{8}$/; //定义正则表达式 var obj = document.getE

if中,int判断不能是4位数字吗?请指教,谢谢!

问题描述 if中,int判断不能是4位数字吗?比如:Console.Write("Pleaseenter4digitalnumber:");inta=Console.ReadLine();if(a=='1234')//这里会提示太多数字了,郁闷,如果要做,请问如何写,请指教,谢谢!{Console.WriteLine("Pleaseenteryourpassword:");} 解决方案 解决方案二:你弄错类型了吧,''是用来括起char类型的字符,只能写一位.int

Java swing中Jlist怎么判断里面是否有数据?谢谢

问题描述 Java swing中Jlist怎么判断里面是否有数据?谢谢 因为布局需要,所有我在开始就new了: private DefaultListModel<String> listModel = new DefaultListModel<>();private JList<String> buttonList = new JList<>(listModel); 中间是监听数字按钮,并动态的将按钮上的值放入buttonList. 最后要监听一个MC按钮,

《Thinking in Java》习题——吸血鬼数字

最近在看<Java编程思想>,这本书非常棒,不愧是Java程序员的圣经.看到第四章,后面有道题目很有意思,于是就自己做了做.          1. 我的思路很简单,但是算法效率非常之低.就是把4位数拆成4个数字,比如1260--->1,2,6,0.然后4位数字组合成两个2位数,计算它们        的乘积,相等则就是吸血鬼数字.       1 public class Test2 { 2 /* 3 * 将4位数拆分成4个数 4 * */ 5 public int [] array(

string-关于java,有哪位大神能帮忙看这代码分别是什么意思吗?

问题描述 关于java,有哪位大神能帮忙看这代码分别是什么意思吗? case StreamTokenizer.TT_NUMBER: s = Double.toString(st.nval); break; case StreamTokenizer.TT_WORD: s = st.sval; // Already a String break; default: // single character in ttype s = String.valueOf((char)st.ttype); } i

java计算简单的数字,求教求教

问题描述 java计算简单的数字,求教求教 int a=0;b=0,c=0,d=0;那么我要的就是:int one=9;one=a+b;a和b的值是等于9的,我现在就是要这个值: 这个能在java里这样玩吗 解决方案 java中的数字精确计算 解决方案二: 我这样是错的,这个四元一次方程组,求java的这个 解决方案三: 不对,int a=0:int b=0:n=a+b是说将a和b的和赋值给n,这时n也成为0 了. 你可以将左上角的设为x,右上角的为y,左下角的为12-x右下角当然也能表示出来,