字符串解析

第一问:给你一个字符串如“3d5a2e”,如何用java解析,并输出dddaaaaaee?
仅供参考:关于类似的像"数字"+"字符",都可以用以下程序算出,
     存在的问题:1 当全是数字或全是字母的则不能被算出。各位如果哪位有更好的高见请赐教
  洗耳恭听,呵,,
数字数组  字符数组
  3        空
  0        d
  5        空
  0        a
  2        空
  0        e */
/**
* 此类测试字符串的解析 用到的知识点:判断字符是否是数字,数组
*
* @author WULIANG
*
*/
public class Test2 {
/**
* 最重要的是当数字数组不为0时,字符数组为空,字符数组不为空时,数字数组为0
*
* @param args
*/
public static void main(String[] args) {

  Test2 t = new Test2();
  t.sysnum("5d6a");
  System.out.println("/n");
  t.sysnum2("3d5a2e");
}
public void sysnum2(String str) {
  int intNum = 0;// 用于计算字符串中的数字的总和,并且将成为最后字符数组的长度
  int c[] = new int[str.length()];// 整型数组用来存放数字的数组
  char cc[] = new char[str.length()];// 字符数组用来存放解析出来的字符数组
  String s = "";// 最终结果
  // 存入数组中
  for(int i=0;i<str.length();i++){
   // 解析字符串中的每个字符
   char ch = str.charAt(i);
   if(java.lang.Character.isDigit(ch)){
    // 将数字相加得到总和,并将成为字符数组的长度
    intNum += Integer.parseInt(String.valueOf(ch));
    // 将数字存放到数组中
    c[i]= Integer.parseInt(String.valueOf(ch));    
   }else{
    // 存入字符
    cc[i] = ch;
   }  
  }

  int n = -1;// 定义一个整数用于字符数组的序号
  char result[] = new char[intNum];// 最终字符数组

  for(int k=0;k<c.length;k++){
   if(c[k]!=0){  // 如果不为空
    for(int h=k;h<c[k]+k;h++){
     n++;
     result[n]=cc[k+1];
    }  
   }
  }

  for(int b=0;b<intNum;b++){
   s +=result[b];  
  }
  System.out.println(s);
}

public void sysnum(String str) {
  int len = str.length();
  int[] num = new int[len/2];
  String[] out = new String[len/2];
  for(int i=0;i<len;i+=2) {
   num[i/2] = Integer.parseInt(str.substring(i,i+1));
   out[i/2] = str.substring(i+1,i+2);
  }
  for(int i=0;i<len/2;i++) {
   for(int j=0;j<num[i];j++) {
    System.out.print(out[i]);

   }
   //System.out.println();
  }  
}
}
/*
* 数字数组 字符数组 3 空 0 d 5 空 0 a 2 空 0 e
*/



// System.out.println(result[h]+"/t"+h+"/t"+n);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值