数组用toString()这个方法什么时候可以正常输出字符串为什么有的时候会输出hash值
public class StingDemo {
public static void main(String[] args) {
//从键盘读入一行英文字符串,统计并显示输出:1. 单词的个数提示:字符串对象有一个split()函数,可将指定一个分隔符,将主串拆分为子串的数组。
String str = "This is java";
System.out.println("-------------------------");
String str1 = str.toLowerCase();
System.out.println(str1);
String[]strArray = str1.split(" ");
for(String stri:strArray){
System.out.println(stri);
}
System.out.println("-----------------");
System.out.println(str + "中单词有" + strArray.length + "个");
StringBuffer sb = new StringBuffer();
/*字符串数组转化成字符串只能用循环数组然后拼接
String[] str = {"abc", "bcd", "def"};
StringBuffer sb = new StringBuffer();
for(int i = 0; i < str.length; i++){
sb. append(str[i]);
}
String s = sb.toString();
如果是 “字符数组” 转 “字符串” 可以通过下边的方法
char[] data={'a','b','c'};
String s=new String(data);
--------------------------------------------------------------------------------------------以下是自己的吐槽---------------------------------
String str2 = strArray.toString();???既然没用为什么要有toString()
System.out.println(str2);*/--------------------------------------------------吐槽结束---------------------------------------
for(int i=0;i<strArray.length;i++){
sb.append(strArray[i]);
}
System.out.println(sb);
System.out.println("----------------");
//以上可以
char[]charArray=new char[str.length()];
for(int j =0;j<sb.length();j++){
charArray[j]=sb.charAt(j);
}
/* System.out.println(charArray);
for(int s=0;s<charArray.length;s++){
System.out.print(charArray[s]);
}*/
for(char s:charArray){
System.out.print(s);
}
System.out.println();//以上已经成功的把字符串变成了char类型的数组
int count;//用于获取26字母出现次数
for(char i='a';i<'z';i++){//用hash值也可以用int
count = 0;
for(int j = 0;j<charArray.length;j++){
if(charArray[j] == i){
count++;
}
}
if(count != 0){
System.out.println(i + "出现的次数为" + count + "次");
}
}
System.out.println("-----------------------");
//下面是用int转换
int[]intArray=new int[charArray.length];
for(int i = 0;i<intArray.length-2;i++){
intArray[i]=(int)(charArray[i]);
System.out.println(intArray[i]);
}System.out.println("---");
for(int i = (int)('a');i<(int)('z');i++){
count=0;
for(int j = 0;j <intArray.length-2;j++){
if(intArray[j] == i){
count++;
}
}
if(count!=0){
System.out.println((char)(i) + "出现的次数为" + count + "次");
}
/*
2. a-z每个字母出现的次数,不区分大小写
提示:字符串对象的charAt(int index)函数,可返回串中每一位的字符。
a. 可以用数组分别存放26个字母的出现次数。
b. 字母可强制转换为整数形态的ascii值,而a~ z 的ascii值是按顺序来的
*/
}
}
}