java — программа для увеличения массива, наконец

#java

Вопрос:

Напишите программу на Java со следующим сценарием.

Функция, которая увеличивает строку для создания новой строки.

Если строка заканчивается числом, то это число должно быть увеличено на 1. Если строка не заканчивается числом, к новой строке следует добавить 1. Если число имеет начальные нули, следует учитывать количество цифр.

Комментарии:

1. Можете ли вы добавить несколько тестовых примеров или примеров?

2. пожалуйста, добавьте свой подход

Ответ №1:

Вы хотите достичь чего-то подобного

1.Если последний символ-это число, увеличьте его. (Учтена возможность » 9 » в качестве последнего символа, поэтому увеличьте его до 10.)

2.Если последний символ не является числом, увеличьте его.

 String string = "StackOverflowError7";
  if(Character.isDigit(string.charAt(string.length()-1)))
      if(string.charAt(string.length()-1) != '9'){
          string = string.substring(0,string.length()-1)   (char)(string.charAt(string.length()-1) 1);
       } else {
           string = string.substring(0,string.length()-1)   "10";
       }
    else {
           string = string.substring(0,string.length()-1)   (char)(string.charAt(string.length()-1) 1);
     }
    System.out.println(string);//Final output
 

Ответ №2:

Это для поиска отдельного значения или определенного значения, которое вы хотите найти в последовательности:

 static void methodOne() { 
        // initialize array 
        String[] array = { "one", "2", "three", "four" }; 
        // initialize value to search 
        String valueToSearch = "2"; 
        // initialize boolean variable 
        boolean isExists = false; 
        // iterate over array 
        for (int i = 0; i < array.length; i  ) { 
          // get the value at current array index 
          String arrayValue = array[i]; 
          // compare values 
          if (valueToSearch.equals(arrayValue)) { 
            isExists = true; 
            // if value is found, terminate the loop 
            break; 
          } 
        } 
        if (isExists) { 
          //add code
        } else { 
          //add code
      } 
    }
 

Если вы хотите строго искать, то, если это номер, я рекомендую это:

 private Pattern pattern = Pattern.compile("-?\d (\.\d )?");

public boolean isNumeric(String strNum) {
    if (strNum == null) {
        return false; 
    }
    return pattern.matcher(strNum).matches();
}
 

Ответ №3:

Попробуй это.

 static final Pattern N = Pattern.compile("(.*?)(\d )");

static String increment(String s) {
    String r = N.matcher(s).replaceFirst(m ->
        String.format("%s%0"   m.group(2).length()   "d",
            m.group(1), Integer.parseInt(m.group(2))   1));
    return r.equals(s) ? s   "1" : r;
}

static void testIncrement(String s) {
    System.out.println(s   " -> "   increment(s));
}
 

и

 testIncrement("abc0000");
testIncrement("abc0011");
testIncrement("abc0099");
testIncrement("abc9999");
testIncrement("abc012def8");
testIncrement("abc012def");
 

выход:

 abc0000 -> abc0001
abc0011 -> abc0012
abc0099 -> abc0100
abc9999 -> abc10000
abc012def8 -> abc012def9
abc012def -> abc012def1