在带有args[]的Java中找不到符号错误

在带有args[]的Java中找不到符号错误,java,command-line-arguments,Java,Command Line Arguments,我是Java的初学者。 我试图编写一个程序,将两个数字和一个字符串作为命令行参数,并打印出由这两个数字指定的子字符串 例如: %java子字符串hello 1 3 输出: 厄尔 这是我在main中的代码: String a = args[1]; String b = args[2]; String d = args[0]; String c = d.subString(a, b); System.out.println(c); 编译器给了我一个错误,说明: 错误:找不到符号

我是Java的初学者。 我试图编写一个程序,将两个数字和一个字符串作为命令行参数,并打印出由这两个数字指定的子字符串

例如:

%java子字符串hello 1 3

输出:

厄尔

这是我在main中的代码:

  String a = args[1];
  String b = args[2];
  String d = args[0];
  String c = d.subString(a, b);
  System.out.println(c);
编译器给了我一个错误,说明:

错误:找不到符号

符号:方法子字符串(字符串,字符串)

位置:字符串类型的变量d

它是
substring()
而不是
substring()
。语法不正确。还有
substring()
接受
int
参数而不是
String
参数

使用

而不是

String c = d.subString(a, b);

Java

中,它不是
子字符串,而是。Java是区分大小写的语言。此外,
substring
方法接受2个
int
eger参数,因此您的代码肯定不会编译

您正在传递整数值,因此正确的方法应该是使用函数将
字符串
解析为
int

 int a = Integer.parseInt(args[1]); //The beginIndex (starting from 0, inclusive)
 int b = Integer.parseInt(args[2]); //The endIndex (of maximum string.length(), exclusive).
 String d = args[0];
 String c = d.subString(a, b);
 System.out.println(c);
两个问题

1.
子字符串
应写成
子字符串

public String substring(int beginIndex, int endIndex)
2.)方法
子字符串
也接受
int参数

子字符串方法的内部定义

  public String substring(int beginIndex, int endIndex) {
    if (beginIndex < 0) {
        throw new StringIndexOutOfBoundsException(beginIndex);
    }
公共字符串子字符串(int-beginIndex,int-endIndex){
如果(beginIndex<0){
抛出新的StringIndexOutOfBoundsException(beginIndex);
}
a和b
应为
int类型
而不是
String

public String substring(int beginIndex, int endIndex)

您调用它是错误的,该方法使用一个或两个整数

它是
子字符串
(并且参数类型不正确)。此外,没有接受两个字符串作为参数的子字符串方法。它不接受字符串,而是接受int作为参数。为什么不阅读javadoc,它列出了所有类上可用的所有方法并对它们进行了描述?将args[2]和args[1]强制转换为整数