黑马程序员技术交流社区
标题:
每日练习题
[打印本页]
作者:
贺小梅
时间:
2015-11-29 00:13
标题:
每日练习题
今天是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)
从控制台输出的结果可以看出,实现了题目的要求,
最终只能借鉴别人的解题,不懂就问是一件好事,如果你有更好的解题方法,请记得给我回帖哦~~~
时间不早了,记得早点休息~~
作者:
劲爆对策
时间:
2015-11-29 00:46
/*
* 随机生成一个长度为20的字符串,其中只包含字母,字母区分大小写,最后统计其中出现的字符的个数格式为X(某某字符)(次数)
要求不能使用集合来解这个题
* */
public class test14 {
public static String makeString() {
Random ran = new Random();
StringBuilder sb = new StringBuilder(20);
while (sb.length()<20) {
int ch = ran.nextInt(200);
if (('A' < ch && ch < 'Z') || ('a' < ch && ch < 'z'))
sb.append((char) ch);
}
return sb.toString();
}
public static void analyseStr(String str){
char[] chs=str.toCharArray();
//临时字符串,用于存储检查过的字符
String temp="";
for(int i=0;i<chs.length;i++){
//计数变量
int count=0;
char ch=chs[i];
//对新字符进行统计
while((temp.indexOf(ch))==-1){
for(int j=i;j<chs.length;j++){
if(chs[j]==ch){
count++;
}
}
temp+=ch;
System.out.println(ch+" "+count);
}
}
}
public static void main(String[] args) {
analyseStr(makeString());
}
}
作者:
贺小梅
时间:
2015-11-29 01:11
劲爆对策 发表于 2015-11-29 00:46
/*
* 随机生成一个长度为20的字符串,其中只包含字母,字母区分大小写,最后统计其中出现的字符的个数格式 ...
思路清晰,挺好,真大神~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2