今天是2015年11月27日,依旧是忙碌的一天,但是感觉自己敲的代码越来越少了,突然感觉自己不知道该做什么了,感觉java基础视频都看完了,很多的概念的东西还是不太清楚,应该要多记一下这个东西吧,今天还是老样子,又给出了一道题,题目如下:
随机生成一个长度为20的字符串,其中只包含字母,字母区分大小写,最后统计其中出现的字符的个数格式为X(某某字符)(次数)
要求不能使用集合来解这个题,最后还是没想出来这道题,在某个部分的思路是正确的,但是就是在某些地方卡住了,好吧,下面的方法是同学思考出来的,仅供参考:
import java.util.Random;
public class Example {
public static void main(String[] args) {
// String s="";
// int count=0;
// for (int i = 0; i < 20; i++) {
// count=(int)(Math.random()*((int)('z') + 1));
// if (!((count>'A'&&count<'Z')||(count>'a'&&count<'z'))) {
// i=i-1;
// }else {
// s+=(char)(count);
// }
// }
//
// System.out.println("生成字符串是:"+s);
String az="abcdefghijklmnopqrstuvwxyzABCDEFGHIZKLMNOPQRSTUVWXYZ";
char [] azAz=az.toCharArray();
Random rd = new Random();
String str="";
for(int x=0;x<20;x++){//获取字符串
int b=rd.nextInt(52);
str=str+azAz[b];
}
System.out.println(str);
char[] cr = str.toCharArray();
//获取字符出现的次数
for (int i = 0; i < cr.length; i++) {
char s=cr[i];
int c=0;
for (int j = 0; j < cr.length; j++) {
if(cr[i]==cr[j]){
c++;
}
}
System.out.print(s+"("+c+")"+",");
}
}
}
运行,在控制台打印结果如下:
cIsTnRqisycPNaRSXZgw
c(2),I(1),s(2),T(1),n(1),R(2),q(1),i(1),y(1),P(1),N(1),a(1),S(1),X(1),Z(1),g(1),w(1)
从控制台输出的结果可以看出,实现了题目的要求,
最终只能借鉴别人的解题,不懂就问是一件好事,如果你有更好的解题方法,请记得给我回帖哦~~~
时间不早了,记得早点休息~~
|
|