??途W(wǎng)刷華為題的一些雷區(qū)(JAVA)

1.多行輸入的問(wèn)題

A.包含多行數(shù)據(jù)
image.png

那么寫(xiě)法:

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while(in.hasNextLine()) {

B.如果是輸入中沒(méi)有明確提到要多行輸入數(shù)據(jù),一般都認(rèn)為他的輸入是多行


image.png
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while(in.hasNext()) {

2.輸出的時(shí)候

一定要符合規(guī)范,用

 System.out.println(sb.toString());

而不是

System.out.printf(sb.toString());

3.輸入是多行數(shù)據(jù)的,但是是有限行的時(shí)候

image.png

第一種寫(xiě)法:


BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
        int[] result = new int[8];
        String line = null;
        while ((line = bfr.readLine()) != null&&line.length()!=0) {

第二種寫(xiě)法:

public class Main {
    public static void main(String[] args) throws IOException {
        Scanner in = new Scanner(System.in);
        String line = null;
        while (in.hasNext() && (line = in.nextLine()) != null && line.length() != 0) {

4.一般涉及到字符串的操作

1.將char變?yōu)閕nt

例如將'b'變?yōu)?

int val = 'b' -'a'

將'1'變成1

int val = '1' -'0'

2.將int變?yōu)閏har

例如:將1變?yōu)?b'

(char)('a'+1)

將1變成'1'

(char)(1+'0')

3.'a'-'z'和'A'-'Z'的值不連續(xù)

而且'a'>'z'
所以想要變成int[] chs來(lái)存儲(chǔ)'a'-'Z'不好可以變成

int[] lowerCases = new int[26];
int[] upperCases = new int[26];

4.幾個(gè)總結(jié):

1.將char數(shù)組轉(zhuǎn)化為String的做法是:

String res = String.valueOf(char[])     

而不是

String res = char[].toString();

2.如果使用將int變成二進(jìn)制的String,一定要記得,其位數(shù)可能不夠

String res = Integer.toBinaryString(1); //它是一個(gè)1不是0001

3.如果想要對(duì)char中的'0'-'9'做++的模10操作,一定記住要還原為字符,不然一定為錯(cuò)誤的字符

(char) ((ch-'0'+9)%10+'0');   // 字符數(shù)字-1
(char) ((ch-'0'+1)%10+'0');   //字符數(shù)字+1
數(shù)字+1位模10是  (i+1)%10
數(shù)字-1模10是(i+9)%10  如果直接-1可能會(huì)變?yōu)樨?fù)數(shù)

5.如果涉及到字符的操作,一定要注意分類(lèi)的情況

image.png

例如該題沒(méi)有明確指出,非字母的字符怎么處理,不能簡(jiǎn)單的分為大寫(xiě)字母和小寫(xiě)字母,這樣會(huì)出現(xiàn)錯(cuò)誤,要注意大寫(xiě),小寫(xiě)和非字母的區(qū)別,
image.png

題中有這樣一段話(huà)

如果單詞中包含有重復(fù)的字母,只保留第1個(gè),其余幾個(gè)丟棄。

就是按順序去重字符的話(huà)
可以用Set記錄去重,用List記錄字符


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容