当前位置:   article > 正文

程序设计-从字符串中提取数字并按正序输出(Java)_java提取string中所有数字组合成新的

java提取string中所有数字组合成新的

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击人工智能教程

  1. package live.every.day.Programming;
  2. /**
  3. * 从字符串"4hj2*7dnsk3772"中提取数字并按正序输出。
  4. *
  5. * @author Created by LiveEveryDay
  6. */
  7. import java.util.Arrays;
  8. public class ExtractNumbersAndSort {
  9. public static void main(String[] args) {
  10. String str = "4hj2*7dnsk3772";
  11. char[] charArr = str.toCharArray();
  12. int numCount = 0;
  13. for (char c : charArr) {
  14. if (c >= '0' && c <= '9') {
  15. numCount++;
  16. }
  17. }
  18. int[] intArr = new int[numCount];
  19. for (int i = 0, j = 0; i < charArr.length; i++) {
  20. if (charArr[i] >= '0' && charArr[i] <= '9') {
  21. intArr[j++] = charArr[i] - '0';
  22. }
  23. }
  24. quickSort(intArr, 0, intArr.length - 1);
  25. System.out.println(Arrays.toString(intArr));
  26. }
  27. public static void quickSort(int[] a, int low, int high) {
  28. if (low >= high) {
  29. return;
  30. }
  31. int pivot = oneTripQuickSort(a, low, high);
  32. quickSort(a, low, pivot - 1);
  33. quickSort(a, pivot + 1, high);
  34. }
  35. private static int oneTripQuickSort(int[] a, int low, int high) {
  36. int i = low;
  37. int j = high;
  38. int pivot = a[i];
  39. while (i < j) {
  40. while (i < j && a[j] >= pivot) {
  41. j--;
  42. }
  43. a[i] = a[j];
  44. while (i < j && a[i] <= pivot) {
  45. i++;
  46. }
  47. a[j] = a[i];
  48. }
  49. a[i] = pivot;
  50. return i;
  51. }
  52. }
  53. // Output:
  54. /*
  55. [2, 2, 3, 4, 7, 7, 7]
  56. */

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/45564
推荐阅读
相关标签
  

闽ICP备14008679号