本文主要是介绍java字符串倒叙输出(遇到数字不倒叙),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
预期:
我是测试1234字符56789串
---- 转换前 ↑ ----
---- 转换后 ↓ ----
串56789符字1234试测是我
参考了几个方式,挑了一个来改了下,下面是参考代码及结果
排序参考 https://blog.csdn.net/java001122/article/details/80363290
数字判断 https://www.cnblogs.com/guop/p/5216836.html (这是转载地址,没找到原文)
package com.xxxx.utils;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class CharsUtil {public static void main(String[] args) {String str = "我是测试1234字符56789串";System.out.println(str);;System.out.println("---- 转换前 ↑ ---- \n---- 转换后 ↓ ----");System.out.println(CharsUtil.reverseString(str));}//倒叙字符串(数字不倒叙)public static String reverseString(String str) {char[] chr = str.toCharArray();String newStr = "";String numStr = "";for (int i = chr.length-1 ; i >= 0; i--) {if(CharsUtil.isNumeric(String.valueOf(chr[i]))){numStr = chr[i] + numStr;//数字前追加前一个数字}else{//判断是否需要拼接数字字符串,并清空numStrif(numStr != ""){newStr = newStr + numStr;numStr = "";}newStr = newStr + chr[i];}}return newStr;}/*** 利用正则表达式判断字符串是否是数字* @param str* @return*/public static boolean isNumeric(String str){Pattern pattern = Pattern.compile("[0-9]*");Matcher isNum = pattern.matcher(str);if( !isNum.matches() ){return false;}return true;}
}
结果:
我是测试1234字符56789串
---- 转换前 ↑ ----
---- 转换后 ↓ ----
串56789符字1234试测是我
这篇关于java字符串倒叙输出(遇到数字不倒叙)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!