第一节课,学习了基本数据类型和String类.
在java中有八种原始类型,byte,short,long,int,float,double,char,booleam,它们有不同的值域和表示范围,我们应该严格按照它们的值域和表示范围定义数(这是任何一个学习编程的人都必须特别注意的,否则会出现不可预知的错误)。
第一节课的重点内容是在String类,以及在String类下的各种方法,对字符串进行各种神奇的处理。
我们的主要任务是给定一个字符串,统计其中每个字符出现的次数,这个任务的难点在于,每个字符出现不止一次,如果不做其他处理的话,就会出现重复统计,这样既费时又不科学,所以我们在统计完一个字符之后,需要把这个字符删除,在String类里,我们就会想到用replace这个方法,将其删除(实为替换)。
对于这一个字符串,我们用两个循环,外循环从第一个字符开始,将第i(0<=i<字符串的长度)个字符赋给我们定义的字符c,再利用内循环,在内循环中定义整型count=1,把第i+1个以后的字符依次与字符c进行比较,如果相等,就计数count加一,并且在一个字符统计完成后实施替换。在循环过程中,得注意外循环的i是不能自加的,这样会对计数有影响,导致计数错误。代码如下:
public class 字符串统计 {
/**
* 统计字符串euriyui3743289^%^&*&DJHK2312中每个字符出现的次数 *
* @param ZhuMei
*
*/
public static void main(String[] args) {
// 定义字符串变量
String str1 = "euriyui3743289^%^&*&DJHK2312";
//统计每个字符出现的次数
for (int i = 0; i < str1.length();) {
char c = str1.charAt(i);
int count = 1;
for (int j = 1; j < str1.length(); j++) {
if (str1.charAt(j) == c) {
count++;
}
}
str1 = str1.replace(c + "", "");
System.out.println(c + "出现的次数为" + count + "次");
}
}
}
这种方法容易想到,但是因为要和每个字符都比较,对于电脑来说,工作量较大。下面还有一种思路,相比工作量小一点(其实就是熊哥你讲的,我暂时想不出了T_T):
因为每一个字符都对应的有一个ASCII值,我们就可以定义一个存储计数的数组,再利用charAt方法获得指定索引位置的字符,在将字符转换为对应的ASCII值,然后将对应的ASCII位置的数组元素加1,在用循环输出统计个数部位0的。
这是本节课的部分内容,还有一些String类方法的练习,其实就是照抄,所以就不上传了。
在java中有八种原始类型,byte,short,long,int,float,double,char,booleam,它们有不同的值域和表示范围,我们应该严格按照它们的值域和表示范围定义数(这是任何一个学习编程的人都必须特别注意的,否则会出现不可预知的错误)。
第一节课的重点内容是在String类,以及在String类下的各种方法,对字符串进行各种神奇的处理。
我们的主要任务是给定一个字符串,统计其中每个字符出现的次数,这个任务的难点在于,每个字符出现不止一次,如果不做其他处理的话,就会出现重复统计,这样既费时又不科学,所以我们在统计完一个字符之后,需要把这个字符删除,在String类里,我们就会想到用replace这个方法,将其删除(实为替换)。
对于这一个字符串,我们用两个循环,外循环从第一个字符开始,将第i(0<=i<字符串的长度)个字符赋给我们定义的字符c,再利用内循环,在内循环中定义整型count=1,把第i+1个以后的字符依次与字符c进行比较,如果相等,就计数count加一,并且在一个字符统计完成后实施替换。在循环过程中,得注意外循环的i是不能自加的,这样会对计数有影响,导致计数错误。代码如下:
public class 字符串统计 {
/**
* 统计字符串euriyui3743289^%^&*&DJHK2312中每个字符出现的次数 *
* @param ZhuMei
*
*/
public static void main(String[] args) {
// 定义字符串变量
String str1 = "euriyui3743289^%^&*&DJHK2312";
//统计每个字符出现的次数
for (int i = 0; i < str1.length();) {
char c = str1.charAt(i);
int count = 1;
for (int j = 1; j < str1.length(); j++) {
if (str1.charAt(j) == c) {
count++;
}
}
str1 = str1.replace(c + "", "");
System.out.println(c + "出现的次数为" + count + "次");
}
}
}
这种方法容易想到,但是因为要和每个字符都比较,对于电脑来说,工作量较大。下面还有一种思路,相比工作量小一点(其实就是熊哥你讲的,我暂时想不出了T_T):
因为每一个字符都对应的有一个ASCII值,我们就可以定义一个存储计数的数组,再利用charAt方法获得指定索引位置的字符,在将字符转换为对应的ASCII值,然后将对应的ASCII位置的数组元素加1,在用循环输出统计个数部位0的。
这是本节课的部分内容,还有一些String类方法的练习,其实就是照抄,所以就不上传了。