有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为什么java ToCharray语句有时才起作用?

我对以下代码有问题。具体来说,3个toCharArray声明。当我第一次运行代码时,它运行得很好,但再次运行时,我会收到以下所有3行的错误消息

']' expected
illegal start of expression
not a statement

我意识到我可以通过将首字母改为char[]并在print语句中加入[0]调用来打印首字母缩写,但我很好奇为什么代码只在大约一半的时间内有效

谢谢

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);
    }
}

共 (2) 个答案

  1. # 1 楼答案

    char[0]不是Finitial变量的有效类型。唯一一次你得到类似char[0]的东西是在:

    char[] x = new char[0];
    

    相反,你应该使用:

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

    或者分两个阶段:

    char[] firstArray = first.toCharArray();
    char firstInitial = firstArray[0];
    
  2. # 2 楼答案

    这是非法语法:

    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];