Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按顺序确认字符串中有一系列字符_Java_String - Fatal编程技术网

Java 按顺序确认字符串中有一系列字符

Java 按顺序确认字符串中有一系列字符,java,string,Java,String,我有点被困在如何计算一个字符串是否包含一系列按设定顺序排列的字符上。(对/错) 例如,abc1deeef2hh hijk3lmno 所以我需要检查这个字符串是否包含一个1,2,3的顺序。所以3不能在2或1之前出现,以此类推 任何建议都将不胜感激。我在这里采取的方法是删除所有非数字字符,然后简单地对字符串进行一次传递,检查以确保没有后续数字小于之前的数字 public static boolean isInOrder(String input) { if (input == null ||

我有点被困在如何计算一个字符串是否包含一系列按设定顺序排列的字符上。(对/错)

例如,abc1deeef2hh hijk3lmno

所以我需要检查这个字符串是否包含一个1,2,3的顺序。所以3不能在2或1之前出现,以此类推


任何建议都将不胜感激。

我在这里采取的方法是删除所有非数字字符,然后简单地对字符串进行一次传递,检查以确保没有后续数字小于之前的数字

public static boolean isInOrder(String input) {
    if (input == null || input.length() == 0) {
        return true;
    }
    String inputNums = input.replaceAll("[^\\d]", "");
    char prev = inputNums.charAt(0);
    for (int i=1; i < inputNums.length(); ++i) {
        char curr = inputNums.charAt(i);
        if (curr < prev) {
            return false;
        }
        prev = curr;
    }

    return true;
}

public static void main(String[] args) {
    String input = "abc1deeef2hh hijk3lmno";
    System.out.println(input + ", " + isInOrder(input));
    input = "abc2deeef1hh hijk3lmno";
    System.out.println(input + ", " + isInOrder(input));
}
此处演示:

abc1deeef2hh hijk3lmno, true
abc2deeef1hh hijk3lmno, false

您也可以使用JS

function checkOrderedArrElm(array, order) {
    var m = 0;//Counter
    var current_num;
    var next_num;
    var result = array;
    var test;
    if (array !== undefined) {
        if (array.constructor === Array) { 
            result = true;
            while (m < array.length) {
                current_num = array[m];
                next_num = array[m + 1];
                if (typeof current_num === "number" &&
                        typeof next_num === "number") {
                    if (order) {
                        test = current_num >= next_num;
                    } else {
                        test = current_num <= next_num; 
                    }
                    if (test) {
                        result = false;
                        break;
                    }
                }
                m += 1;
            }
        }
    }
    return result;
}
var strInput= "abc1deeef2hhh ijk3lmno";
function ExtractNumberFromString(strInput) {
    var indices = [];
    var inputVal = strInput;
    console.log(inputVal);
    for (var i = 0; i < inputVal.length; i++) {
      if (Number(inputVal[i])) indices.push(Number(inputVal[i]));
    }
    return indices; 
}
checkOrderedArrElm(ExtractNumberFromString(strInput), true));
函数checkOrderedArrElm(数组,顺序){
var m=0;//计数器
无功电流;
var next_num;
var结果=数组;
var检验;
if(数组!==未定义){
如果(array.constructor==array){
结果=真;
while(m=下一个数量;
}否则{
测试=当前数量