NoProcessing.java 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.kyl.utils;
  2. /**
  3. * 工具类补全
  4. */
  5. public class NoProcessing {
  6. /***
  7. * 处理补全编号,所有编号都是15位,共5层,每层关系如下:
  8. * 第一层:100000000000000
  9. * 第二层:100001000000000
  10. * 第三层:100001001000000
  11. * 第四层:100001001001000
  12. * 第五层:100001001001001
  13. * @param input 如果为001000000000000处理完成后则变为001
  14. * @return
  15. * @return: java.lang.String
  16. */
  17. public static String processString(String input) {
  18. int step = input.length() / 3;
  19. for (int i =0;i<step;i++ ){
  20. String targetString = input.substring(input.length()-3,input.length());
  21. if ("000".equals(targetString)){
  22. input = input.substring(0,input.length()-3);
  23. }else {
  24. break;
  25. }
  26. }
  27. return input;
  28. }
  29. public static void main(String[] args) {
  30. // String input = "100001001001000";
  31. String input = "100000000000000";
  32. String processedString = createNo(input,false);
  33. System.out.println(processedString);
  34. }
  35. /***
  36. * 生产层级编号
  37. * @param input 输入编号
  38. * @param peerNode 是否下属节点
  39. * @return
  40. * @return: java.lang.String
  41. */
  42. public static String createNo(String input,boolean peerNode) {
  43. int step = input.length() / 3;
  44. int supplement = 0;
  45. for (int i =0;i<step;i++ ){
  46. String targetString = input.substring(input.length()-3,input.length());
  47. if ("000".equals(targetString)){
  48. input = input.substring(0,input.length()-3);
  49. supplement++;
  50. }else {
  51. break;
  52. }
  53. }
  54. if (peerNode){
  55. input = String.valueOf(Long.valueOf(input) + 1L);
  56. for (int i =0;i<supplement;i++ ){
  57. input = input+"000";
  58. }
  59. }else {
  60. input = String.valueOf(Long.valueOf(input+"001"));
  61. for (int i =0;i<supplement-1;i++ ){
  62. input = input+"000";
  63. }
  64. }
  65. return input;
  66. }
  67. }