A. java語言中如何獲取字元串中漢字的個數
【實例描述】
字元串中可以包含數字,字母、漢字或者其他字元。使用Character 類的isDigit()方法可以判斷字元中的某個字元是否為數字,使用Character 類的isLetter()方法可以判斷字元中的某個字元是否為字母。實例中將介紹一種方法用來判斷字元串中的某個字元是否為漢字,通過此方法可以計算字元串中漢字的數量。實例的運行效果如圖4.24 所示。
【實現過程】
在Eclipse 中新建項目ChineseCharacter,並在其中創建一個ChineseCharacter.java 文件。在該類的主方法中創建標准輸入流的掃描器對象,接收用戶輸入的字元串。我們在程序中使用matches()方法來統計該字元串中漢字的個數。核心代碼如下所示:
protected void do_button_actionPerformed(ActionEvent e) {String text = chineseArea.getText(); // 獲取用戶輸入int amount = 0; // 創建漢字數量計數器for (int i = 0; i < text.length(); i++) { // 遍歷字元串每一個字元 // 使用正則表達式判斷字元是否屬於漢字編碼boolean matches = Pattern.matches("^[u4E00-u9FA5]{0,}$", ""+ text.charAt(i));if (matches) { // 如果是漢字amount++; // 累加計數器}}umField.setText(amount + ""); // 在文本框顯示漢字數量}
【代碼解析】
本實例的關鍵點在於正則表達式的使用。Java 提供了Pattern 用於正則表達式的編譯表示形式,該類提供的靜態方法matches()可以執行正則表達式的匹配。該方法編譯給定正則表達式並嘗試給定輸入與其匹配。如果要匹配的字元序列與正則表達式匹配則返回true,否則返回false。其聲明語法如下:
public static boolean matches(String regex,CharSequence input);【知識擴展】
使用正則表達式可以方便地進行字元串操作,正則表達式經常被用來驗證用戶輸入的信息,如可以判斷用戶輸入的格式是否正確。本實例中使用正則表達式來判斷用戶輸入的字元串是否為漢字,如果為漢字則計數器加1,最後得到字元串中所有漢字的數量。
B. java怎麼實現統計一個字元串中字元出現的次數
可以用String的indexof(str,fromindex)方法,循環遍歷加一個計數器統計次數。
publicclassCountTimes{
publicstaticvoidmain(String[]args){
Stringstr="Intheentireworldthere'";
inttimes=searchstr("my",str);//返回2
System.out.println(times);
}
publicstaticintsearchstr(Stringkey,Stringstr){
intindex=0;//每次的搜索到的下標
intcount=0;//計數器
while((index=str.indexOf(key,index))!=-1){
index=index+key.length();
count++;
}
returncount;
}
}
C. java 統計字元串中每個字母有多少個
如下代碼提供了三種方式統計一個字元串中出現的大小寫字母和其他字元:
class Test{ publicstatic void main(String[] args) { String str = "abAM1,!23"; int cntU = 0; //大寫字母的個數 int cntL = 0; //小寫字母的個數 int cntOther = 0; int i; //第二種方法 String s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String s2 ="abcdefghijklmnopqrstuvwxyz"; for (i=0; i<str.length(); ++i) { charch = str.charAt(i); if(-1 != (s1.indexOf(ch))) { cntU++; } elseif (-1 != s2.indexOf(ch)) { cntL++; } else { cntOther++; } } // //方法二// for (i=0; i<str.length(); ++i)// {// charch = str.charAt(i);// if(Character.isUpperCase(ch))// cntU++;// elseif (Character.isLowerCase(ch))// cntL++;// else// cntOther++;// } //方法三// for (i=0; i<str.length(); ++i)// {// charch = str.charAt(i);// if(ch>='a' && ch<='z'){// cntL++;// }// elseif (ch>='A' && ch<='Z'){// cntU++;// }// else{// cntOther++;// }// } System.out.printf("大寫字母個數: %d\n", cntU); System.out.printf("小寫字母個數: %d\n", cntL); System.out.printf("非字母個數: %d\n", cntOther); }}
D. java統計串中字元個數的代碼解釋
整個代碼就是為了統計字元串中各個字元出現的個數
Map
result
=
getCharMaps(s);
這個方法調用
主要是看這個方法
public
static
Map
getCharMaps(String
s)
{
Map
map
=
new
HashMap();
//定義一個map
for(int
i
=
0;
i
<
s.length();
i++)
{
//
下面的代碼主要是循環字元串,一次取出每一個字元
Character
c
=
s.charAt(i);
//獲取對應的字元
Integer
count
=
map.get(c);
//獲取字元對應出現的次數
map.put(c,
count
==
null
?
1
:
count
+
1);
//如果之前出現過,則加1,否則直接賦1
}
return
map;
//返回最終的map
}
E. 編寫java程序統計字元個數。
inteng=0;
intspace=0;
intnum=0;
intother=0;
Scannersc=newScanner(System.in);
System.out.println("請輸入");
Stringstr=sc.next();
char[]arr=str.charAt();
for(inti=0;i<arr.length;i++){
if((arr[i]>='A'&&arr[i]<='Z')||(arr[i]>='a'&&arr[i]<='z')){
eng++;
}elseif(arr[i]==''){
space++;
}elseif(arr[i]>='0'&&arr[i]<='9'){
num++;
}else{
other++;
}
}
System.out.println("英語字母個數:"+eng);
System.out.println("空格個數:"+space);
System.out.println("數字個數:"+num);
System.out.println("其他個數:"+other);
F. JAVA編寫:輸入一個字元串然後統計某字元的個數輸出
就是用一個for循環,遍歷字元串,如果發現那個字元,個數就加一。
int count = 0;//個數
char c='a';
String s = "abdelabdbals";
for(int i=0;i<string.length();i++)
{
if(s.charAt(i)==c) count++;
}
System.out.println(count);
G. java中怎麼統計一個字元串中每個字元的出現次數
操作如下:
String str ="2342asfghgyu56asdasda";Map<String,Integer> maps = new HashMap<String,Integer>();for(int i=0;i<str.length();i++){。
String key = String.valueOf((str.charAt(i)));if(!maps.containsKey(key)),maps.put(key, 1);else{int val =maps.get(key);maps.put(key, val+1);
for(Map.Entry i : maps.entrySet()){System.out.println(i.getKey()+ "=="+i.getValue());
H. java中通過鍵盤輸入一串字元串,統計其中有多少種字元,每種字元多少個
importjava.util.Scanner;
/**
*統計字元串中數字,字母,空格,其他字元的個數
*@authoryoung
*
*/
publicclassData01{
publicstaticvoidmain(String[]args){
intenglishCount=0;//英文字母個數
intspaceCount=0;//空格個數
intnumCount=0;//數字個數
intotherCount=0;//其他字元個數
Scannersc=newScanner(System.in);
System.out.println("請您輸入一行字元:");
Stringstr=sc.nextLine();//取得控制台輸入的一行字
char[]ch=str.toCharArray();//把取道的字元串變成一個char數組
for(inti=0;i<ch.length;i++){
if(Character.isLetter(ch[i])){
//判斷是否為字母
englishCount++;
}elseif(Character.isSpaceChar(ch[i])){
//判斷是否為空格
spaceCount++;
}elseif(Character.isDigit(ch[i])){
//判斷是否為數字
numCount++;
}else{
//以上都不是則認為是其他字元
otherCount++;
}
}
System.out.println("字母的個數:"+englishCount);
System.out.println("數字的個數:"+numCount);
System.out.println("空格的個數:"+spaceCount);
System.out.println("其他字元的個數:"+otherCount);
}
}
I. java怎麼實現統計一個字元串中字元出現的次數
這是我剛根據你的需求寫的,你可以參考一下!
我辦法很簡單,拆分存放數組裡面,然後查找數組就可以了!
其實還有更簡單的辦法,直接用容器比較方便,目前這個辦法我自己用數組寫的,我個人挺滿意的!
importjava.util.Scanner;
publicclass統計次數
{
privatestaticScannersc=newScanner(System.in);
publicstaticvoidmain(String[]args)
{
System.out.println(" ==========統計字元串中字元次數========== ");
init();
}//初始化!
privatestaticvoidinit()
{
for(;;)
{
System.out.println("輸入文字:");
char[]arr1=fenJie(input());
System.out.println("查找的字:");
charx=muBiao(fenJie(input()));
inty=chaZhao(arr1,x);
System.out.println("你要找的是""+x+"",出現"+y+"次 =============== ");
}
}
//錄入!
privatestaticStringinput()
{
Strings=sc.next();
returns;
}
//分解!
privatestaticchar[]fenJie(Strings)
{
char[]arr=newchar[s.length()];
for(inti=0;i<s.length();i++)
{
arr[i]=(char)(s.charAt(i));
}
returnarr;
}
//查找!
privatestaticintchaZhao(char[]arr,charx)
{
intnum=0,tem=-1;
for(inta=0,b=arr.length-1;a<=b;a++,b--)
{
if(a!=b&&arr[a]==x)num++;
if(a!=b&&arr[b]==x)num++;
if((a==b)&&(arr[a]==x||arr[b]==x))num++;
tem=num;
}
returntem;
}
//目標
privatestaticcharmuBiao(char[]arr)
{
returnarr[0];
}
}
J. java中 如何統計一段字元串中相同字元的個數
通過循環遍歷字元串,然後一個個的比較,記下相同字元的個數就行了。代碼如下:
importjava.util.Scanner;
importjava.util.TreeMap;
/**
*從鍵盤輸入16位長整數,編程統計每個數字出現的個數
*@authoryoung
*
*/
publicclassCharMapDemo{
//統計數字或者字元出現的次數
publicstaticTreeMap<Character,Integer>Pross(Stringstr){
char[]charArray=str.toCharArray();
TreeMap<Character,Integer>tm=newTreeMap<Character,Integer>();
for(intx=0;x<charArray.length;x++){
if(!tm.containsKey(charArray[x])){
tm.put(charArray[x],1);
}else{
intcount=tm.get(charArray[x])+1;
tm.put(charArray[x],count);
}
}
returntm;
}
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
// System.out.println("請輸入一個長整數:");
// inttemp=sc.nextInt();
// Stringstr=String.valueOf(temp);
// TreeMap<Character,Integer>tm=Pross(str);
// System.out.println(tm);
System.out.println("請輸入一個字元串:");
Stringstr=sc.nextLine();
TreeMap<Character,Integer>tm=Pross(str);
System.out.println(tm);
}
}