表示数字

来源:互联网 发布:网络阅读的利与弊例子 编辑:程序博客网 时间:2024/04/27 14:49

描述: 

题目标题:

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

详细描述:

接口说明
原型:

int MarkNum(char *pInStr, char *pOutStr)

输入参数:

char *pInStr 输入的字符串

输出参数:

char *pOutStr 输出的字符串

返回值:

int 0:处理成功 -1:出现异常

限制:

 

 知识点: 字符串,循环,数组 题目来源: 内部整理 练习阶段: 初级 运行时间限制:10Sec内存限制:128MByte输入: 

输入一串字符

 输出: 

输出一串处理过的字符

 样例输入:
asdf123asdfe4                   
样例输出:
asdf*123*asdfe*4*
</pre><br />                    
答案提示:

 


import java.util.ArrayList;import java.util.List;import java.util.Scanner;import java.util.regex.Pattern;public class Main {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubScanner scan = new Scanner(System.in);// 接收控制台输入的信息String str = scan.next();//System.out.println(str);List<String> my =new ArrayList();for(int i=0;i<str.length();i++){my.add(String.valueOf(str.charAt(i)));}int flag =0;for(int i=0;i<my.size();){if(isNumeric(my.get(i))&&flag==0){flag=1;my.add(i, "*");i=i+2;}else if(isNumeric(my.get(i))&&flag==1){i++;if(i==my.size())my.add(i,"*");}else if((!isNumeric(my.get(i)))&flag==1){flag=0;if(!my.get(i).equals("*"))my.add(i, "*");i=i+2;}else{i++;}}for(int i=0;i<my.size();i++){System.out.print(my.get(i));}}public static boolean isNumeric(String str){     Pattern pattern = Pattern.compile("[0-9]*");     return pattern.matcher(str).matches();     } }

写的比较挫

0 0