Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用方法有困难_Java_Methods_Method Call - Fatal编程技术网

Java 调用方法有困难

Java 调用方法有困难,java,methods,method-call,Java,Methods,Method Call,我有一种感觉,答案就在我眼皮底下,但我对Java的n00b特性让我追根究底。第一部分,我假设要求用户输入两个字符串,比较它们,并说明第一个字符串中的字符数。第二部分,我假设要求用户输入一个位置,记住第一个字符从零开始,然后代码假设声明位于该位置的字符 我认为我的第一部分代码非常干净,但我需要的是第二部分的帮助。我已经在底部写了这个方法,但是现在我不知道如何调用它。我在编译器中不断收到错误消息。由于这个错误,我还没有机会实际测试这个方法,所以如果你发现有任何错误,我们将非常感谢你的帮助。提前谢谢

我有一种感觉,答案就在我眼皮底下,但我对Java的n00b特性让我追根究底。第一部分,我假设要求用户输入两个字符串,比较它们,并说明第一个字符串中的字符数。第二部分,我假设要求用户输入一个位置,记住第一个字符从零开始,然后代码假设声明位于该位置的字符

我认为我的第一部分代码非常干净,但我需要的是第二部分的帮助。我已经在底部写了这个方法,但是现在我不知道如何调用它。我在编译器中不断收到错误消息。由于这个错误,我还没有机会实际测试这个方法,所以如果你发现有任何错误,我们将非常感谢你的帮助。提前谢谢

import java.util.Scanner;

public class StringCode1
{
   public static void main(String[] args)
   {
    String string1, string2;
    int pos;

        Scanner stdin = new Scanner(System.in);

        System.out.print("Enter first string: ");
        string1 = stdin.next();
        System.out.print("Enter second string: ");
        string2 = stdin.next();

        if (string1.compareTo(string2) > 0)
    {
       System.out.println(string1 + " is less than " + string2);
    }
        else if (string1.compareTo(string2) == 0)
    {
       System.out.println(string1 + " is equal to " + string2);
    }
        else if (string1.compareTo(string2) < 0)
    {
       System.out.println(string1 + " is greater than " + string2);
    }
    System.out.print("Number of characters in " + string1 + " is " );       

    System.out.println(string1.length() );

    String = showChar();
   }

   public static char showChar(String string1, int pos)
   {
    Scanner stdin = new Scanner(System.in);

    System.out.println("Enter position noting first character is at 0: ");
    string1 = stdin.nextLine();
    pos = stdin.nextInt();

    System.out.print("Character at position" + pos + "in " + string1); 
    System.out.print("is: "); 
    System.out.println(string1.charAt(pos));

   }  
  }
import java.util.Scanner;
公共类字符串代码1
{
公共静态void main(字符串[]args)
{
字符串string1、string2;
int pos;
扫描仪标准输入=新扫描仪(System.in);
System.out.print(“输入第一个字符串:”);
string1=stdin.next();
System.out.print(“输入第二个字符串:”);
string2=stdin.next();
如果(字符串1.与(字符串2)相比>0)
{
System.out.println(string1+“小于”+string2);
}
else if(string1.与(string2)==0比较)
{
System.out.println(string1+“等于”+string2);
}
else if(string1.与(string2)相比<0)
{
System.out.println(string1+“大于”+string2);
}
系统输出打印(“字符串1+中的字符数为”);
System.out.println(string1.length());
String=showChar();
}
公共静态字符showChar(字符串string1,int pos)
{
扫描仪标准输入=新扫描仪(System.in);
System.out.println(“输入位置,注意第一个字符位于0:”);
string1=stdin.nextLine();
pos=stdin.nextInt();
系统输出打印(“字符在“+1”中的“+pos+”位置);
系统输出打印(“is:”);
系统输出打印LN(字符串1.字符(位置));
}  
}
在上面的一行中,您试图分配给一个类型,该类型是一个无效的表达式。此外,您的方法
showChar
需要两个参数,并且您试图用零参数调用它

另一个错误是
showChar
的返回类型为
char
,但没有
return
语句。要么将其设置为
void
方法,要么将其设置为
return
something(大概是
string1.charAt(pos)

因此,您必须找到
showChar
的参数应该是什么,然后,如果
showChar
的值应该返回一个
char
,则将其分配给其类型的变量,如下所示:

char c = showChar(string1, yourIndex);
或者,如果它将是
void

showChar(string1, yourIndex);

…其中,
yourIndex
是您希望传递给
showCar
中的
pos
参数的值,请修改showChar函数,如下所示:

public static void showChar()
{
    Scanner stdin = new Scanner(System.in);

    System.out.println("Enter position noting first character is at 0: ");
    String string1 = stdin.nextLine();
    int pos = stdin.nextInt();

    System.out.print("Character at position" + pos + "in " + string1); 
    System.out.print("is: "); 
    System.out.println(string1.charAt(pos));

}  

并用
showChar()调用它

错误信息是什么?代码的缩进是“到处都是,就像疯女人编织的东西”。。。正如我以前的科学老师所说(RIP AAC)。如果你想让人们认真对待你的代码/问题,你需要注意风格。你可以参考Theodoros的解释。
public static void showChar()
{
    Scanner stdin = new Scanner(System.in);

    System.out.println("Enter position noting first character is at 0: ");
    String string1 = stdin.nextLine();
    int pos = stdin.nextInt();

    System.out.print("Character at position" + pos + "in " + string1); 
    System.out.print("is: "); 
    System.out.println(string1.charAt(pos));

}