Java 所以我的问题是,我似乎不能在代码中添加一个void函数
我想在代码中插入一个void函数Java 所以我的问题是,我似乎不能在代码中添加一个void函数,java,Java,我想在代码中插入一个void函数 import java.util.*; public class javellana { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Input String: "); String str = scan.nextLine(); System.ou
import java.util.*;
public class javellana {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Input String: ");
String str = scan.nextLine();
System.out.println("Input character: ");
char str1 = scan.next().charAt(0);
int num = str.length();
int i;
for (i = num - 1; i >= 0; i--) {
if (str1 == str.charAt(i)) {
System.out.println("The character " + str1 + " you intput is " + i);
break;
}
}
}
}
这是我的代码,我想添加一个以“for”开头的void函数。我希望for循环在一个空函数中,但我似乎做不到。如何修复此问题?您可以添加一个void方法作为static,并直接在main方法中使用它
public class javellana {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Input String: ");
String str = scan.nextLine();
System.out.println("Input character: ");
char str1 = scan.next().charAt(0);
int num = str.length();
int i;
func(str, str1);
}
static void func(String str, char str1) {
int num = str.length();
for (int i = num - 1; i >= 0; i--) {
if (str1 == str.charAt(i)) {
System.out.println("The character " + str1 + " you intput is " + i);
break;
}
}
}
}
编辑:
您只需使用System.out.println(str.lastIndexOf(str1))代码>行,而不是问题的整个for循环
public class javellana {
String str;
char str1;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Input String: ");
str = scan.nextLine();
System.out.println("Input character: ");
str1 = scan.next().charAt(0);
func(); // call function here
}
static void func() {
int num = str.length();
for (int i = num - 1; i >= 0; i--) {
if (str1 == str.charAt(i)) {
System.out.println("The character " + str1 + " you intput is " + i);
break;
}
}
}
}
如果需要更改,请尝试此更改
添加空函数
表示在公共静态void main(String){}
中添加(声明)另一个方法(函数)
那么这是不允许的
你能做的是;创建一个匿名类或函数接口(Java8)。这并不完全是你想要的,但不知怎么的 main()
是static方法,因此只能从中使用static方法
您可以使用String.lastIndexOf()方法代替for循环
public static void main(String... args) {
try (Scanner scan = new Scanner(System.in)) {
System.out.print("Input String: ");
String str = scan.nextLine();
System.out.print("Input character: ");
char ch = scan.next().charAt(0);
lastIndexOf(str, ch);
}
}
private static void lastIndexOf(String str, char ch) {
int i = str.lastIndexOf(ch);
if (i >= 0)
System.out.println("The character " + ch + " you input is " + i);
}
不能在方法中创建方法。
目前,您使用的是main方法。
但是您可以从一个方法中调用任意多个方法
但是有一些限制。不能在静态方法中调用非静态方法。
因此@pkgajulapalli可能是正确的
public class javellana {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Input String: ");
String str = scan.nextLine();
System.out.println("Input character: ");
char str1 = scan.next().charAt(0);
int num = str.length();
tt(num,str1,str);
}
static void tt(int num , char str1, String str)
{
for(int i = num - 1; i >= 0; i--) {
if (str1 == str.charAt(i)) {
System.out.println("The character " + str1 + " you intput is " + i);
break;
}
}
}
}
除了代码之外,你想从中获得的仍然是
不清楚
很不清楚你在问什么。也许你可以(在代码中)说明“添加一个void函数”的意思