天天看點

藍橋杯-字元串删除

package exec;

import java.util.Scanner;

/**
問題描述
  編寫一個程式,先輸入一個字元串str(長度不超過20),再輸入單獨的一個字元ch,然後程式會把字元串str當中出現的所有的ch字元都删掉,進而得到一個新的字元串str2,然後把這個字元串列印出來。
  輸入格式:輸入有兩行,第一行是一個字元串(内部沒有空格),第二行是一個字元。
  輸出格式:經過處理以後的字元串。
輸入輸出樣例
樣例輸入
123-45-678
-
樣例輸出
12345678
 * @author Vivinia
 *
 * 2018年2月5日
 */
public class B {

	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		String str=input.nextLine();              //nextLine可以接收空格
		String ch=input.nextLine();
		String s="";
		if(str.equals(" ")||ch.equals(" "))      //""和" "是不一樣的
			return;
		for(int i=0;i<str.length();i++) {
			if(str.charAt(i)!=ch.charAt(0))
				s+=str.charAt(i);
		}
		System.out.println(s);
	}

}
           

很簡單的題目,但是有幾個小細節需要注意:

1.測試樣例有幾個特殊的情況,就是輸入兩個全為空,或者第二個輸入樣例為空,那樣輸出都為空的,是以得加上判斷,如果為空就終止方法;

2.對于輸入空格情況,需要使用nextLine(),而不能使用next(),nextLine()接收一行,可以包括空格,以回車作為終止,next()接收一段,以空格作為終止;

3.判斷為空格時,需要str.equsla(" "),而不能str.equals(""),前一種代表的是和長度為一空格比較,後一種是空字元串,長度為0;

繼續閱讀