Showne92 2015-03-23 07:35 采纳率: 0%
浏览 1824

a2bc3d1转换成aabcbcbcd

为什么代码中提取循环次数的多循环了???

import java.util.Scanner;

/*

  • 请完成右侧函数,该函数功能是解密一个给定字符串,解密的规则是将两个数字间(前面没有数字的情况下算开头和数字间)的字符串重复数字次数,
  • 数字不会超过int表示的范围。
  • 例如:a2bc3d1转换成aabcbcbcd。
    */
    public class qunaerbishi {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    char ch;//ch用于记录当前字符。
    int num;//num用于记录循环次数。
    System.out.println("请输入序列:");
    String s,r="";//s用于记录输入串,r用于记录输出串。
    String temp;//用于记录循环字符串。
    Scanner in=new Scanner(System.in);
    s=in.nextLine();
    in.close();
    for(int i=0;i // ch=s.substring(i, i+1).charAt(0);
    ch=s.charAt(i);
    temp="";
    int t=i;//用于记录当前i的位置。
    int flag=0;//用于记录是否为连续字符串。
    while(i='a'||ch<='Z'&&ch>='A')){
    if(temp!="")
    flag++;
    temp+=ch;
    i++;
    // ch=s.substring(i, i+1).charAt(0);
    ch=s.charAt(i);
    System.out.println("temp..."+temp);
    }
    num=0;
    while(i='0')){
    if(num==0)
    num=ch-'0';
    else
    num=num*10+(ch-'0');
    i++;
    if(s.length()>i+1)
    // ch=s.substring(i, i+1).charAt(0);
    ch=s.charAt(i);
    else break;
    //为什么这里多循环了次数?
    System.out.println("num..."+num);
    }
    //为什么这里多循环了次数?
    System.out.println("num2..."+num);
    for(int j=0;j r+=temp;
    }
    // if(flag>0)
    i=t+flag+1;
    // i=t;
    }
    System.out.println("原始字符串为 :"+s);
    System.out.println("解密后字符串为:"+r);

    }

}

  • 写回答

2条回答 默认 最新

  • 二哥的博客 2015-03-23 07:40
    关注

    你这是“去哪儿网”笔试题吧? 写得这么复杂啊,我记得蛮简单的

    评论

报告相同问题?

悬赏问题

  • ¥20 西门子S7-Graph,S7-300
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改