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