java - 第 29 行中的标识符预期错误

标签 java identifier

这是一个让用户输入句子然后选择一个字符的程序。然后它告诉用户该字符出现了多少次,但我遇到了一个错误,因为它需要一个标识符。这是代码:

import java.util.Scanner;

public class StringTest{
public static void main(String[] args){
Scanner incomingString = new Scanner( System.in);
System.out.print("Type Something");
String s1 = incomingString.nextLine();
Scanner s2incomingString = new Scanner( System.in);
System.out.print("Choose a character"); 
String s2 = s2incomingString.nextLine();    

String result="";
StringBuilder sb = new StringBuilder(s1);
int counter = 0;
int start = 0;
int index = 0;

while (s1.length != -1){
 int counter = 0;
     index = s1.indexOf(s2,start);
     if (index != -1){
        counter++;
        start = index+1;
        }
     }    
 }
    System.out.println(index);         
}

最佳答案

这一行是当前的问题:

System.out.println(index);

它存在于任何方法、构造函数或初始化程序的主体之外 - 你不能这样做。我怀疑您的意思是将其放在 main 方法的主体中。

如果您缩进代码,这更加明显。这是您的代码,适当缩进(并跳过中间的一堆):

import java.util.Scanner;

public class Test{
    public static void main(String[] args){
        Scanner incomingString = new Scanner( System.in);
        ...
        int index = 0;

        while (s1.length != -1){
            int counter = 0;
            index = s1.indexOf(s2,start);
            if (index != -1){
                counter++;
                start = index+1;
            }
        }    
    }
    System.out.println(index);         
}

看看 System.out.println 调用与您期望的方法声明处于同一级别吗? 始终缩进您的代码 - 大多数 IDE 可以在您键入时或根据需要为您执行此操作。它让每个人的生活都变得更好。

通过将该语句移至 main 方法的右大括号内解决问题后,您将看到另外两个问题:

  • 您声明了 counter 两次,其中第二个声明位于第一个声明已在范围内的位置。
  • 您使用 String.length 就好像它是一个字段,而不是一个方法;将 s1.length 更改为 s1.length()

然后代码将编译...但不清楚您要做什么,并且 String.length() 永远不会返回 -1 ...也许您想要像 while (index != -1)

关于java - 第 29 行中的标识符预期错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28747259/

相关文章:

java - 创建 TreeMap 可视化

java 错误的操作数和标识符使用

javascript - 如何在 html 中调用另一个 ID 中的特定 ID?

swift - 使用未解析的标识符 'result' swift 3

java - 在 JSF 中显示数据库数据时出现问题

java - Netty ChannelAcquired 没有被调用

java - 如何使用html表单发送的XML?

java - 使用 JAXB 将同名的多个 XML 元素解码到一个列表中

cocoa - 关于自动表列标识符

java - 当我启动应用程序时尝试获取 Android_ID 崩溃