編寫一個程式,輸出一個字串中的大寫英文字母數,小寫英文字母數以及非英文字母數。
import java.util.Scanner;
public class CountString{
public static void main(String[] args){
int uletter = 0;//儲存大寫字母
int lletter = 0;//儲存小寫字母
int noletter = 0;//儲存非字母數
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入一個帶字母和非字母的字串");
String str=scanner.next();
char[] ch=str.toCharArray();
for(char c:ch){
if(c>='a'&&c<='z'){
uletter++;
}else if(c>='A'&&c<='Z'){
lletter++;
}else{
noletter++;
}
}
System.out.println("小寫:"+uletter+" 大寫:"+lletter+" 非字母:"+noletter);
}
}
*/
import java.util.Scanner;
public class NewClass {
public static void main(String args[]){
int count=0;//字串出現次數
Scanner scanner=new Scanner(System.in);
System.out.println("請輸入一個長字串:");
String longStr=scanner.next();
System.out.println("請輸入一個短字串:");
String shortStr=scanner.next();
if(longStr.length()<shortStr.length()){
System.out.println("字串["+shortStr+"]在字串["+longStr+"]中出現了"+count+"次");
return;
}
for(int i=0;i<=longStr.length()-shortStr.length();i++){
String tempStr=longStr.substring(i, i+shortStr.length());//將長傳分割成與字串相同長度的字串
System.out.println(tempStr);
if(tempStr.equals(shortStr)){
count++;
}
}
System.out.println("字串:["+shortStr+"]在字串["+longStr+"]中出現了"+count+"次");
}
}
/**
*這是上一個程式的另一種實現方式
*/
import java.util.Scanner;
public class SubStringCount {
public static void main(String args[]){
int count=0;
Scanner scanner=new Scanner(System.in);
System.out.println("請輸入一個長字串:");
String longStr=scanner.next();
System.out.println("請輸入一個短字串:");
String shortStr=scanner.next();
int index=longStr.indexOf(shortStr);
while(index!=-1){
count++;
index=longStr.indexOf(shortStr, index+shortStr.length());
}
System.out.println("字串["+shortStr+"]在字串["+longStr+"]中出現了"+count+"次");
}
}