1. 程式人生 > >華為線上程式設計題系列-2-計算字元個數

華為線上程式設計題系列-2-計算字元個數

問題描述:

問題描述

1. 問題涉及知識點.

  • string.toUpperCase() string.toLowerCase() 全部轉為大寫或者全部轉為小寫.
  • string.compareToIgnoreCase(key)忽略大小寫比較.
  • scanner.nextLine() scanner.next() scanner.nextInt()的區別.

2. 自己解法.

  • 做一個無限迴圈scanner.hasNext()
  • 分別用第一個用next()取,第二個也用next()取.`
  • 將取到的字元都轉為大寫.
  • 遍歷第一個字串,看和2相同的字元的個數.
import java.util.Scanner;
public
class HuaWei_2 { public static void main(String[] args) { Scanner in = new Scanner(System.in); String string_1 = in.next();//取第一個字串 string_1 = string_1.toUpperCase().trim();//去除兩邊的空格,轉為大寫. String string_2 = in.next();//取第二個字串 string_2 = string_2.toUpperCase().trim(); char
key = string_2.charAt(string_2.length() - 1);//取第二個字串的最後一個字元. int result = getLen(string_1, key);//計算相同的個數 System.out.println(result); } private static int getLen(String strArr, char key) { char[] charArr = strArr.toCharArray(); int num = 0; for (char aCharArr : charArr) { if
(aCharArr == key) { num++; } } return num; } }

3. 優質答案.

  • 採用string.nextLine()取字元.不過覺得和原題有所不符,如ASD A則不能處理.
  • String.valueof(c)char轉為string
import java.util.*;
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner s=new Scanner(System.in);
        String all="";
        String one="";
        char[] ac;
        char temp;
        int num=0;
        while(s.hasNext())
        {
            //s.toUpperCase(),String 轉化為大寫
            //s.toLowerCase(),String 轉化為小寫
            //String字元轉換,s.toCharArray()與s.charAt(index)
            //char字元轉換,String.valueOf(c)轉化為String
            all=s.nextLine();
            one=s.nextLine();
            //存放原來所有的
            ac=all.toCharArray();
            //存放要的字元
            //temp=one.charAt(0);
            for(int i=0;i<ac.length;i++)
            {
                if(one.equalsIgnoreCase(String.valueOf(ac[i])))   
                    num++;
            }
            System.out.println(num);
        }
    }
}

4. 本題總結.

scanner.nextLine() scanner.next() 的區別:
next():遇見第一個有效字元(非空格,非換行符)時,開始掃描,當遇見第一個分隔符或結束符(空格或換行符)時,結束掃描,獲取掃描到的內容,即獲得第一個掃描到的不含空格、換行符的單個字串
nextLine():可以掃描到一行內容並作為一個字串而被獲取到。nextLine()方法的結束符只是Enter鍵,即nextLine()方法返回的是Enter鍵之前的所有字元,它是可以得到帶空格的字串的。