黑马程序员技术交流社区
标题:
小菜鸟求教
[打印本页]
作者:
Havorld
时间:
2014-7-30 23:14
标题:
小菜鸟求教
给定一个字符串,计算出大写字母几个,小写字母几个,数字几个,其他的字符几个
String s = "ABCDEabcd123456!@#$%^&";
作者:
DSY
时间:
2014-7-30 23:43
给楼主提供下思路,1、把字符串转换成字符数组 2、循环获取数组每个元素的ASCLL码,根据不同字符码值范围就可以区分出大小写特殊字符 (实现以上方法均可调用java jdk api原有的方法,楼主可以查阅下)
作者:
赵顺超
时间:
2014-7-31 00:15
把字符串转成字符数组,然后for循环,判断是大写,还是小写还是数字还是字符,字符就是else,大写字母小写字母,数字对应有数值。定义4个计数器,是谁就加一,用if判断就行。然后打印结果。
作者:
Imp_x
时间:
2014-7-31 00:40
大概思路就是用ASCLL码咯 譬如要大写字母的 那就'A'<x&&x<'Z' count++ 大概就这样 用for循环+if else语句轻松KO
作者:
简一
时间:
2014-7-31 01:53
本帖最后由 简一 于 2014-7-31 02:01 编辑
敲了20分钟才敲明白 我也是个菜鸟
使用charAt方法 通过索引获取对应的字符
然后用for循环 遍历数组索引对应的字符
依次判断,如果找到了,累加。否则进入一下条件进行判断。
package cn.itcast.lianxi;
import java.util.Scanner;//导入util
public class Demo123 {
/**
* @param args
* String s = ABCDEabcd123456!@#$%^&
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); //调用scanner
System.out.println("请输入一个字符串:"); //输入字符串
String str = sc.nextLine(); //
int big = 0; //定义大写计数器
int small = 0; //..小写.....
int num = 0; //..数字.....
int other = 0; //..符号.....
for (int i = 0; i < str.length(); i++) { //遍历数组,每个字符都是什么
char c = str.charAt(i);
if( 'A' <= c && c <= 'Z'){ //进行判断
big++;
}else if('a' <= c && c <= 'z'){
small++;
}else if('0' <= c && c <= '9'){
num++;
}else{
other++;
}
}
//输出
System.out.println("大写字母的个数为:"+big+" 小写字母的个数为:"+small+
" 数字的个数为:"+num+" 其他字符的个数为:"+other);
}
}
复制代码
请输入一个字符串:
ABCDEabcd123456!@#$%
^&
大写字母的个数为:5 小写字母的个数为:4 数字的个数为:6 其他字符的个数为:7
这个是运行结果
希望可以对你有帮助
作者:
fantacyleo
时间:
2014-7-31 02:04
public class Test {
public static void main(String[] args) {
String s = "ABCDEabcd123456!@#$%^&";
int[] result = countByType(s);
System.out.println("大写字母" + result[0] + "个");
System.out.println("小写字母" + result[1] + "个");
System.out.println("数字" + result[2] + "个");
System.out.println("其他" + result[3] + "个");
}
public static int[] countByType(String s) {
int[] result = new int[4];
char[] chars = s.toCharArray();
for (char c : chars) {
if (Character.isUpperCase(c))
result[0]++;
else if (Character.isLowerCase(c))
result[1]++;
else if (Character.isDigit(c))
result[2]++;
else
result[3]++;
}
return result;
}
}
复制代码
作者:
hejinzhong
时间:
2014-7-31 06:00
fantacyleo 发表于 2014-7-31 02:04
写程序就要这样优先考虑API中的功能,别人有的直接用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2