6月24日总结(Java数据类型分析):
这节课讲了Java数据类型分析,主要讲了Java的字符串类型。
通过这节课,我明白了基本点数据类型有2种:1、基本数据类型;2、引用类型,又叫对象类型或者类类型。其中,基本数据类型又分为8类:byte(字节型)、short(短整型)、int(整型)、long(长整型)、float(单精度)、double(双精度)、char(字符型)、boolean(布尔类型)。其中布尔类型的值域为true或者false。
Java的字符串类型的创建方式有多种,例如1、String str = "";2、String str;(此时Str的初始值为NUll)3、byte [] b = new byte[10];String str = new String(b);
字符串类型String是java.lang中的一个类,从JDK API中我了解到它的构造方法有很多种,普通方法也有很多种。在本次的练习中,我主要用到了以下的几种方法,charAt(int index):用于返回指定索引处的char值。valueOf(char c):用于返回char参数的字符串形式。indexOf(String str, int fromIndex) :用于返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。replace(char oldChar, char newChar):用于返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
这次的练习1是字符串统计。在练习中,我遇到了几个问题:
1、String中的split函数不会使用,不知道他是如何输出的。
2、在调用方法的时候没有注意参数类型,比如说调用indexOf(String str, int fromIndex)时,我直接使用字符类型代入第一个参数,导致报错。后来使用了valueOf(char c)函数将char类型转化成了String类型解决了这个问题。
3、循环里面写的有问题。开始时候我将t=i+1;写成t=i;导致除了第一个字符之外其他所有的字符输出来都比字符串中的总数大了1。
练习2是==与equals()的区别,我在网上找了一下,得到了以下结果:1、要判断两个字符串是否相等,可以使用“==”运算符和equals()方法,但是得到的结果可能不完全相同;2、==运算符用于比较两个引用是否指向同一个对象;3、而equals()方法则是比较两个字符串中的内容是否相同,其原型:boolean equals(Object anObject)如果相等返回true,否则返回false。
//导入一个包
import java.util.Scanner;
//定义一个类
public class ka{
//定义一个函数的入口
public static void main (String [] args){
char ch; //定义一个字符类型
String temp; //定义一个字符串类型
int count=0; //定义一个整型用于计数
int t=0; //定义一个整型
int a;
String st;
System.out.print("请输入要统计的字符串:");
Scanner sc=new Scanner(System.in);
st=sc.next();
for(int i=0;i<st.length();i++){
ch = st.charAt(i); //取出第i个字符
temp = String.valueOf(ch); //将字符转换为String类型
while(t!=-1){ //当t!=-1,即在字符串中还能找到取出的字符ch
count++; //则计数加一
t = st.indexOf(temp,t+1);
}
if(ch!='#') //如果ch不为#,则输出temp+count
System.out.println("字符"+temp+"的个数为:"+count);
st=st.replace(ch,'#'); //将原字符串中的ch全用#号代替
t=i+1;
count=0;
}
}
}
这节课讲了Java数据类型分析,主要讲了Java的字符串类型。
通过这节课,我明白了基本点数据类型有2种:1、基本数据类型;2、引用类型,又叫对象类型或者类类型。其中,基本数据类型又分为8类:byte(字节型)、short(短整型)、int(整型)、long(长整型)、float(单精度)、double(双精度)、char(字符型)、boolean(布尔类型)。其中布尔类型的值域为true或者false。
Java的字符串类型的创建方式有多种,例如1、String str = "";2、String str;(此时Str的初始值为NUll)3、byte [] b = new byte[10];String str = new String(b);
字符串类型String是java.lang中的一个类,从JDK API中我了解到它的构造方法有很多种,普通方法也有很多种。在本次的练习中,我主要用到了以下的几种方法,charAt(int index):用于返回指定索引处的char值。valueOf(char c):用于返回char参数的字符串形式。indexOf(String str, int fromIndex) :用于返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。replace(char oldChar, char newChar):用于返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
这次的练习1是字符串统计。在练习中,我遇到了几个问题:
1、String中的split函数不会使用,不知道他是如何输出的。
2、在调用方法的时候没有注意参数类型,比如说调用indexOf(String str, int fromIndex)时,我直接使用字符类型代入第一个参数,导致报错。后来使用了valueOf(char c)函数将char类型转化成了String类型解决了这个问题。
3、循环里面写的有问题。开始时候我将t=i+1;写成t=i;导致除了第一个字符之外其他所有的字符输出来都比字符串中的总数大了1。
练习2是==与equals()的区别,我在网上找了一下,得到了以下结果:1、要判断两个字符串是否相等,可以使用“==”运算符和equals()方法,但是得到的结果可能不完全相同;2、==运算符用于比较两个引用是否指向同一个对象;3、而equals()方法则是比较两个字符串中的内容是否相同,其原型:boolean equals(Object anObject)如果相等返回true,否则返回false。
//导入一个包
import java.util.Scanner;
//定义一个类
public class ka{
//定义一个函数的入口
public static void main (String [] args){
char ch; //定义一个字符类型
String temp; //定义一个字符串类型
int count=0; //定义一个整型用于计数
int t=0; //定义一个整型
int a;
String st;
System.out.print("请输入要统计的字符串:");
Scanner sc=new Scanner(System.in);
st=sc.next();
for(int i=0;i<st.length();i++){
ch = st.charAt(i); //取出第i个字符
temp = String.valueOf(ch); //将字符转换为String类型
while(t!=-1){ //当t!=-1,即在字符串中还能找到取出的字符ch
count++; //则计数加一
t = st.indexOf(temp,t+1);
}
if(ch!='#') //如果ch不为#,则输出temp+count
System.out.println("字符"+temp+"的个数为:"+count);
st=st.replace(ch,'#'); //将原字符串中的ch全用#号代替
t=i+1;
count=0;
}
}
}