java地址值每个字母,Java--------在控制台输入一句英语, 获得每个字母出现的次数...
看到這個題哈,第一想法就是建立兩個數組,分別存放char ? ?和 ? number(次數);
具體思路:
建立一個先從控制臺輸入一串字符,把它轉換成char[ ];然后建立兩個數組分別存放char[ ] 和次數value[ ],最后讓每一個字符都進行比較,從0循環(huán)遍歷比較如果相等就置空(防止下次比較的時候會重復,和為了向char[ ] 數組中添加元素的時候會重復),然后遍歷判斷每一種相等的情況(因為你每次判斷相等的時候就會置空后面相等的元素所以以后再次判斷的時候就不會出現與原先相等的情況保證了數據的唯一性)最后循環(huán)遍歷兩個數組,讓它們一一對應。
具體代碼實現:
package ArrayRideMethod;
import java.util.Scanner;
public class ArrayRepeatComparator {
public static void main(String[] args) {
//輸入一個英語字符串并把它轉換成字符數組
String s =new Scanner(System.in).nextLine();
char[]a = s.toCharArray();
//定義兩個數組 key[]代表的是保存的單個字符 value[]代表的是保存 每個字符的出現次數
char[]key=new char[100];
int []value = new int[100];
//初始化value 因為每個字符只要一比較value值就是2,所以初始化為1,為下面的代碼做鋪墊
for(int i=0;i<100;i++) {
value[i]=1;
}
//用temp變量表示這兩個數組的lenght
int temp =0;
//循環(huán)比較每一個字符做判斷
for(int i =0;i
for(int j = 0;j
//因為每一個字符都要與其他所有的字符(包括自己在內)作比較下面判斷的時候如果是相等把后面的清空、
//在這里要進行判斷提高效率(如果是空或者相等的話比較沒有意義 就繼續(xù)下一個的比較)
if(a[i]!=0&&i!=j) {
//如果不是空就賦給key[ ]
key[temp]=a[i];
if(a[i]==a[j]){
//如果相等就清空,防止下一次重復判斷
a[j]=0;
//如果相等就在此索引上加 1
value[temp]++;
}
}else {
continue;
}
}
//如果字符數組不是空 就加 1
if(a[i]!=0) {
temp++;
}
}
//遍歷出結果
for(int z=0;z
System.out.print(key[z]+" ");
}
System.out.println();
for(int z=0;z
System.out.print(value[z]+" ");
}
}
}
結果輸出:
總結:字符數組清空-----直接給字符數組賦值為 0
總結
以上是生活随笔為你收集整理的java地址值每个字母,Java--------在控制台输入一句英语, 获得每个字母出现的次数...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 重复区域,如何使用Mysql和P
- 下一篇: Java EE开发三剑客现状及发展浅析