LeetCode:巧妙思路解决字符串数字前后加*问题

xiaoxiao2021-02-28  20

1、题目描述

将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变 public static String MarkNum(String pInStr) {       return null; }

输入描述:

输入一个字符串

输出描述:

字符中所有出现的数字前后加上符号“*”,其他字符保持不变

示例1

输入

Jkdi234klowe90a3

输出

Jkdi*234*klowe*90*a*3*

思路:将数字周围都加上*  两个数字中间肯定有两个** 然后替换掉就行了

import java.util.*; public class Main{   public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String str = sc.nextLine(); str =MarkNum(str); System.out.println(str); } } public static String MarkNum(String pInStr) {         char[] arr = pInStr.toCharArray();         StringBuffer sb = new StringBuffer();         for (int i = 0; i < arr.length; i++) {             if ((arr[i] - '0' >= 0) && (arr[i] - '0' <= 9)) { // 判断为数字                 sb.append("*" + arr[i] + "*");  //两边都加上*             } else                 sb.append(arr[i]);         }         return sb.toString().replace("**", "");  //两个数字中间有** 替换掉     } }
转载请注明原文地址: https://www.6miu.com/read-2626660.html

最新回复(0)