【问题标题】:compiling error " .class expected" [duplicate]编译错误“.class预期”[重复]
【发布时间】:2016-03-22 09:20:49
【问题描述】:

我在 Java 中执行此操作。

我在编译时遇到问题。

上面写着 .class 预期

有什么不对的地方请指正,我是Java新手

import java.io.*;
import java.math.*;
class name {
public static void convertToArray(String pin){
    StringBuilder sB = new StringBuilder();
    sB.append(pin);
    String toConvert = sB.toString();
    int [] splittedValue = new int [toConvert.length()];
    for(int i = 0; i < toConvert.length(); i++){
          splittedValue[i] = Character.getNumericValue(pin.charAt(i));
    }
    return splittedValue[]; 
}
public static void Print(int n) {
    System.out.println(n);
}
public static void main(String args[])throws IOException {
    InputStreamReader ir = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(ir);
    int pin1[], i = 0;String Name1, Name2, Name3;
    String Pin;
    String Names[][] ={ {"Mr.","Mrs.","Miss.","Dr.","Sir","Late","Professor","Gadha","Master","Teacher"},{"Abhigyan","Akashdeep","Anish","Adarsh","Ashutosh","","Anik","Shivam","",""},{"Saha","Mukkherjee","Pandey","Shaw","Bannerjee","Dey","Gupta","Singh","",""} };        
    System.out.println("Enter your 3 digit code name :");
    Pin=br.readLine();
    convertToArray(Pin);
    Name1=Names[0][pinExtracted[0]]; Name2=Names[1][pinExtracted[1]]; Name3=Names[2][pinExtracted[2]];
    System.out.println(Name1+" "+Name2+" "+Name3);
}
}

【问题讨论】:

  • 如果您是新手,请从头开始。学习体面的命名约定,如何处理简单的问题,并且,如果您发布一个问题说“我收到一条错误消息”,请不要忘记说出该错误消息指向的位置。
  • 您声明 pinExtracted 的位置。
  • 另外:您正试图从 pinExtracted 中获取值。该数组在哪里定义?
  • 你确定你的类可以编译吗?从我所见,你有一个方法 convertToArray() 的返回值,但它声明的返回类型是 void。
  • 如果您遇到错误,您可能想要分享有关它的详细信息(例如确切的消息),如果它包含行号,请告诉我们是哪一行。

标签: java arrays


【解决方案1】:

我认为你的输出只会这样正确。

import java.io.*;
import java.math.*;
public class name {
public static void convertToArray(String pin){
    StringBuilder sB = new StringBuilder();
    sB.append(pin);
    String toConvert = sB.toString();
    int [] splittedValue = new int [toConvert.length()];
    for(int i = 0; i < toConvert.length(); i++){
          splittedValue[i] = Character.getNumericValue(pin.charAt(i));
    }
   // return splittedValue[]; 
}
public static void Print(int n) {
    System.out.println(n);
}
public static void main(String args[])throws IOException {
    InputStreamReader ir = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(ir);
    String Name1, Name2, Name3;
    String Pin;
    String Names[][] ={ {"Mr.","Mrs.","Miss.","Dr.","Sir","Late","Professor","Gadha","Master","Teacher"},{"Abhigyan","Akashdeep","Anish","Adarsh","Ashutosh","","Anik","Shivam","",""},{"Saha","Mukkherjee","Pandey","Shaw","Bannerjee","Dey","Gupta","Singh","",""} };        
    System.out.println("Enter your 3 digit code name :");
    Pin=br.readLine();
    convertToArray(Pin);
    Name1=Names[0][0]; Name2=Names[1][1]; Name3=Names[2][2];
    System.out.println(Name1+" "+Name2+" "+Name3);
}
}

输出:

输入您的 3 位数代码名称:

012

先生。阿卡什迪普·潘迪

【讨论】:

    【解决方案2】:

    错误.class expected是由

    引起的
    return splittedValue[];
    

    只有在声明数组变量时必须使用[],所以将其改为

    return splittedValue;
    

    请注意,您的 convertToArray 方法应该有签名

    public static int[] convertToArray(String pin){
    

    main方法错误较多,你没有声明变量pinExtracted所以写

    int[] pinExtracted = convertToArray(Pin);
    

    【讨论】:

    • 谢谢,但是当我运行它时,它说: _java.lang.ArrayIndexOutOfBoundsException : 0
    • @AbhigyanSingh 如果Pin 不包含三位数字,则会出现异常。所以你必须测试输入,如果无效则拒绝它。
    • 谢谢,我的问题已经解决了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    相关资源
    最近更新 更多