【问题标题】:Simple string mistake简单的字符串错误
【发布时间】:2025-12-20 12:30:06
【问题描述】:

我正在尝试在 java 中创建一个字符串方法,它会提示某人输入一个长度超过三个字符的字符串。输入后,我想显示该字符串的中间三个字符。出了点问题,因为它没有编译。谁能看到我的错误?我找不到它。谢谢。

//MyString.java
import java.util.Scanner; 
 public class MyString .java {


    public static void main (String[] args) 
    {    

String string;


Scanner scan = new Scanner(System.in);
System.out.println ("Enter a string with a minimum of three characters: " + string); 
string = scan.nextLine();

System.out.println ("You entered: " + string);

String middle3;

System.out.println ("The middle three characters of the string: " + middle3);


    }


}

【问题讨论】:

  • 编译器出现什么错误?
  • '{' 预计在第 10 行 -(公共类行)
  • “public class MyString”旁边的“.java”是什么意思?它应该被删除。无论如何,您的代码似乎没有对输入字符串执行任何操作。

标签: java string prompt mutation


【解决方案1】:
public class MyString .java {

这是错误的。删除“.java”

【讨论】:

    【解决方案2】:

    您使用MyString .java 作为类名。 Java 不允许空格和句点作为有效类名的一部分。我猜你的意思是MyString

    另外,变量stringmiddle3 在使用前不会被初始化。

    【讨论】:

      【解决方案3】:

      您实际上并没有计算middle3。它甚至没有初始化为空。我想你想要:

      String middle3 = (string.length < 3) ? null : string.substring(string.length / 2 - 1), string.length / 2 + 2);
      

      或类似的东西。

      【讨论】:

      • 它没有用。我怎样才能让它显示中间三个字符?
      • 什么不起作用?输入是什么?输出是什么?如果字符串短于 3 个字符,你想打印什么?
      【解决方案4】:

      为什么要在此处附加字符串?

       System.out.println ("Enter a string with a minimum of three characters: " + string ); 
      

      这里你应该初始化middle:

      String middle3 ="something";    
      System.out.println ("The middle three characters of the string: " + middle3);
      

      【讨论】: