表示数字(整合的别人的)
来源:互联网 发布:阿里云余额怎么使用 编辑:程序博客网 时间:2024/06/04 22:31
方案一:
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);char[] strBefore = scan.nextLine().toCharArray();char[] strAfter = new char[2*strBefore.length];int sAL = 0;//strAfterLocationfor(int i = 0 ; i < strBefore.length ; i++){if(i == 0){//对于第一个字符if(strBefore[i]>='0' && strBefore[i]<='9'){//如果第一个字符是数字if(strBefore[i+1]>='0' && strBefore[i+1]<='9'){//如果第一个字符是数字,且第二个字符也是数字strAfter[sAL++]='*';strAfter[sAL++]=strBefore[i];}else{//如果第一个字符是数字,且第二个字符不是数字strAfter[sAL++]='*';strAfter[sAL++]=strBefore[i];strAfter[sAL++]='*';}}else//第一个字符不是数字strAfter[sAL++]=strBefore[i];}else if(i == strBefore.length-1){//对于最后一个字符if(strBefore[i]>='0' && strBefore[i]<='9'){//如果最后一个字符是数字if(strBefore[i-1]>='0' && strBefore[i-1]<='9'){//如果最后一个字符是数字,且倒数第二个字符也是数字strAfter[sAL++]=strBefore[i];strAfter[sAL++]='*';}else{//如果最后一个字符是数字,且倒数第二个字符不是数字strAfter[sAL++]='*';strAfter[sAL++]=strBefore[i];strAfter[sAL++]='*';}}else//如果最后一个字符不是数字strAfter[sAL++]=strBefore[i];}else{//对于中间的字符if(strBefore[i]>='0' && strBefore[i]<='9'){//如果中间的字符是数字if((strBefore[i-1]>='0' && strBefore[i-1]<='9') && (strBefore[i+1]>='0' && strBefore[i+1]<='9')){//前后都是数字strAfter[sAL++]=strBefore[i];}else if(!(strBefore[i-1]>='0' && strBefore[i-1]<='9') && (strBefore[i+1]>='0' && strBefore[i+1]<='9')){//前字母后数字strAfter[sAL++]='*';strAfter[sAL++]=strBefore[i];}else if((strBefore[i-1]>='0' && strBefore[i-1]<='9') && !(strBefore[i+1]>='0' && strBefore[i+1]<='9')){//前数字后字母strAfter[sAL++]=strBefore[i];strAfter[sAL++]='*';}else if(!(strBefore[i-1]>='0' && strBefore[i-1]<='9') && !(strBefore[i+1]>='0' && strBefore[i+1]<='9')){//前后都是字母strAfter[sAL++]='*';strAfter[sAL++]=strBefore[i];strAfter[sAL++]='*';}}else//如果中间的字符不是数字strAfter[sAL++]=strBefore[i];}}for(int i = 0 ; i < sAL; i++){System.out.print(strAfter[i]);}}}
方案二:比较简单。
package oj.test;import java.util.Scanner;public class Demo1 { /** * @表示数字 * 将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变 */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); str = str.replaceAll("([0-9]+)", "*$1*"); System.out.println(str); }}第二种方案虽然简单,但对转义字符的运用要求比较高。参考文章:http://blog.csdn.net/lily0806/article/details/45026457
0 0
- 表示数字(整合的别人的)
- 图的表示(整合)
- 颜色的数字表示
- 数字表示的电容
- 查到的别人稀疏表示的研究
- 关于java的数字表示
- 求数字的逆序表示
- java 数字的内部表示
- 计算一个整数的二进制表示有多少个1(别人的最快算法)
- LeetCode | Plus One(数组表示的数字加1)
- 将人民币的数字表示转化成大写表示
- 扩展一个数字的位表示
- 表示不同文件类型的魔术数字
- 表示不同文件类型的魔术数字
- 实现输出一个数字的二进制表示
- NaN 表示一个非法的数字.
- 数字二进制表示中1的个数
- 数字二进制表示中1的个数
- Improving Multiview Face Detection with Multi-Task Deep Convolutional Neural Networks 基于深度学习的人脸检测算法
- struts.objectFactory和struts.objectFactory.spring.autoWire
- 黑马程序员——IO流与File类
- HDU 5379 Mahjong tree (DFS)
- Scalers:持续行动至少要以年为单位
- 表示数字(整合的别人的)
- Web前端基础(CSS position的正确用法)
- 黑马程序员——网络编程
- 数组与字符串,判断字符串各个字符是否不同
- Android-带缓存的网络图片查看(网络编程)
- Mac 安装 opencv
- 一个字符为0~9的字符串转换成整型数组中数值的对应的形式
- OC学习笔记九 Protocol、Block、成员变量-补充
- ML—决策树算法实现(train+test,matlab)