簡體   English   中英

為什么這個Java toCharArray語句有時只能工作?

[英]Why does this java toCharArray statement only work sometimes?

我的以下代碼有問題。 具體來說,是3個toCharArray語句。 當我第一次運行代碼時,它可以正常工作,但是再次運行它,我得到以下所有三行的錯誤消息

']'預期
非法表達
不是陳述

我意識到我可以通過將它們更改為char []並將[0]調用放入print語句中來打印首字母縮寫,但是我很好奇為什么代碼只運行一半的時間。

謝謝!

import java.util.Scanner;

public class Initials {
    public static void main(String[] args) {

        Scanner names = new Scanner(System.in);

        System.out.print("What is your first name? ");
        String first = names.nextLine();

        System.out.print("What is your middle name? ");
        String middle = names.nextLine();

        System.out.print("What is your last name? ");
        String last = names.nextLine();

        System.out.format("Your name is %s %s %s %n",first,middle,last);

        char[0] Finitial = first.toCharArray();
        char[0] Minitial = middle.toCharArray();
        char[0] Linitial = last.toCharArray();

        System.out.format("Your initials are %c %c %c",Finitial,Minitial,Linitial);
    }
}

char[0]不是Finitial變量的有效類型。 唯一獲得char[0]類的東西的時間是:

char[] x = new char[0];

相反,您應該使用:

char firstInitial = first.toCharArray()[0];
// etc

或分兩個階段:

char[] firstArray = first.toCharArray();
char firstInitial = firstArray[0];

這是非法的語法:

char[0] Finitial = first.toCharArray();
char[0] Minitial = middle.toCharArray();
char[0] Linitial = last.toCharArray();

你要他代替:

char Finitial = first.toCharArray()[0];
char Minitial = middle.toCharArray()[0];
char Linitial = last.toCharArray()[0];

順便說一句:Java命名約定要求您以小寫字母開頭的本地變量名稱。 使用駱駝的情況是這樣的:

char firstInitial = first.toCharArray()[0];
char middleInitial = middle.toCharArray()[0];
char lastInitial = last.toCharArray()[0];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM