zoukankan      html  css  js  c++  java
  • 表示数字

    题目描述

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

    return null;

    }
    注意:输入数据可能有多行

    输入描述:

    输入一个字符串

    输出描述:

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

    示例1

    输入

    Jkdi234klowe90a3

    输出

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


    思路使用StringBulider
    插入StringBuilder描述:(转自https://www.cnblogs.com/jack-Leo/p/6684447.html)

    在程序开发过程中,我们常常碰到字符串连接的情况,方便和直接的方式是通过"+"符号来实现,但是这种方式达到目的的效率比较低,且每执行一次都会创建一个String对象,即耗时,又浪费空间。使用StringBuilder类就可以避免这种问题的发生,下面就Stringbuilder的使用做个简要的总结:

    一、创建Stringbuilder对象
    StringBuilder strB = new StringBuilder();

    1、append(String str)/append(Char c):字符串连接
    System.out.println("StringBuilder:"+strB.append("ch").append("111").append('c'));
    //return "StringBuilder:ch111c"

    2、toString():返回一个与构建起或缓冲器内容相同的字符串
    System.out.println("String:"+strB.toString());
    //return "String:ch111c"

    3、appendcodePoint(int cp):追加一个代码点,并将其转换为一个或两个代码单元并返回this
    System.out.println("StringBuilder.appendCodePoint:"+strB.appendCodePoint(2));
    //return "StringBuilder.appendCodePoint:ch111c"

    4、setCharAt(int i, char c):将第 i 个代码单元设置为 c(可以理解为替换)
    strB.setCharAt(2, 'd');
    System.out.println("StringBuilder.setCharAt:" + strB);
    //return "StringBuilder.setCharAt:chd11c"

    5、insert(int offset, String str)/insert(int offset, Char c):在指定位置之前插入字符(串)
    System.out.println("StringBuilder.insertString:"+ strB.insert(2, "LS"));
    //return "StringBuilder.insertString:chLSd11c"
    System.out.println("StringBuilder.insertChar:"+ strB.insert(2, 'L'));
    //return "StringBuilder.insertChar:chLLSd11c"

    6、delete(int startIndex,int endIndex):删除起始位置(含)到结尾位置(不含)之间的字符串
    System.out.println("StringBuilder.delete:"+ strB.delete(2, 4));
    //return "StringBuilder.delete:chSd11c"

    代码:(直接暴力破解)
    import java.util.*;
    
    public class Main {
    
    
        public Main() {
    
        }
    
        public String markNum(String pInStr) {
            StringBuilder res = new StringBuilder();
            for (int i = 0; i < pInStr.length();) {
                // 若发现了数字
                if (pInStr.charAt(i) >= '0' && pInStr.charAt(i) <= '9') {
                    res.append('*');
                    while (i < pInStr.length() && pInStr.charAt(i) >= '0' && pInStr.charAt(i) <= '9') {
                        res.append(pInStr.charAt(i++));
                    }
                    res.append('*');
                }
                else {
                    res.append(pInStr.charAt(i++));
                }
            }
            return res.toString();
        }
    
        public static void main(String[] args) {
            Main solution = new Main();
            Scanner in = new Scanner(System.in);
            while (in.hasNextLine()) {
                String pInStr = in.nextLine();
                String res = solution.markNum(pInStr);
                System.out.println(res);
            }
    
        } 
    }
  • 相关阅读:
    反汇编测试20191325
    20191325mystat
    20191325学习笔记8
    20191325学习笔记7
    2.3.1测试 20191325
    20191214-改进ls
    团队作业4
    20191214-反汇编测试
    stat命令的实现-mysate(必做)
    图片
  • 原文地址:https://www.cnblogs.com/hisoka-study/p/13495302.html
Copyright © 2011-2022 走看看