Notice: Undefined index: HTTP_ACCEPT_ENCODING in C:\server\web\www.showyounger.com\s-system.php on line 2
NextStrNum | 小样儿(ShowYounger)
小样儿,顶呱呱!!![http://www.showyounger.com]
- public class NextStrNum {
-
- public static void main(String[] args) {
-
- String strNum = "11457584571";
- System.out.println("0\t strNum=" + strNum);
-
- int i = 1;
- try {
- for (; i <= 1000; i++) {
- strNum = nextStrNum(strNum);
- System.out.println(i + "\tstrNumNext=" + strNum);
- }
- } catch (Exception e) {
- System.out.println("==============================");
- System.out.println(i + "\t strNumMax=" + e.getMessage());
- }
- }
-
- private static String nextStrNum(String strNum) throws Exception {
-
- if(strNum.length() <= 1) {
- throw new Exception(strNum);
- }
-
- int strNumLen = strNum.length();
- String strhead = "";
- char charmiddle = ' ';
- String strtail = "";
-
- for (int i = strNumLen - 1; i >= 1; i--) {
-
- if(strNum.charAt(i) > strNum.charAt(i - 1)) {
-
- strhead = strNum.substring(0, i-1);
- charmiddle = strNum.charAt(i - 1);
- strtail = strNum.substring(i);
- break;
- }
- }
-
-
-
-
-
- int strtailLen = strtail.length();
- if(strtailLen == 0) {
- throw new Exception(strNum);
- }
-
- char tmp = charmiddle;
-
- if(strtailLen == 1) {
- charmiddle = strtail.charAt(0);
- strtail = String.valueOf(tmp);
- } else {
- strtail = new StringBuilder(strtail).reverse().toString();
-
- for (int i = 0; i < strtailLen; i++) {
- if(strtail.charAt(i) > charmiddle) {
- charmiddle = strtail.charAt(i);
- strtail = strtail.substring(0, i) + String.valueOf(tmp) + strtail.substring(i + 1);
- break;
- }
- }
- }
-
-
-
-
-
- return strhead + String.valueOf(charmiddle) + strtail;
- }
-
- }