Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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.lang.CharSequence。它是从必需的.class文件中间接引用的“;消息_Java_String - Fatal编程技术网

如何修复:“;无法解析类型java.lang.CharSequence。它是从必需的.class文件中间接引用的“;消息

如何修复:“;无法解析类型java.lang.CharSequence。它是从必需的.class文件中间接引用的“;消息,java,string,Java,String,我正试着用这个字符串 amountStr = amountStr.replace("$", "").replace(" ", "").replace(",", ""); 但我收到一条错误消息,我知道我收到了,因为我刚刚发布的字符串已经过时了。所以我想知道什么是该字符串的一个好的更新版本?下面是我的整个代码的样子 import java.util.Scanner; public class QuarterMachine{ /** * Convert the input t

我正试着用这个字符串

amountStr = amountStr.replace("$", "").replace(" ", "").replace(",", ""); 
但我收到一条错误消息,我知道我收到了,因为我刚刚发布的字符串已经过时了。所以我想知道什么是该字符串的一个好的更新版本?下面是我的整个代码的样子

import java.util.Scanner;

public class QuarterMachine{

    /**
     * Convert the input to cents.
     */

    public static void main(String[] args){

        // PART I INPUT SECTION (COMPLETE)
        // DO NOT CHANGE THESE LINES

        Scanner cin = new Scanner(System.in);
        System.out.print("Part I-Enter the amount input ($ 1,572.52): ");
        String amountStr = cin.nextLine();

        // PLACE YOUR CODE ONLY BELOW THIS LINE
        // PLACE YOUR OUTPUT IN THESE VARIABLES

        // ---------- YOUR CHANGES HERE ----------------------

        double amount = 0;
        int quarters = 0;

//My problem is in line below
        amountStr = amountStr.replace("$", "").replace(" ", "").replace(",", "");

        amount = Double.parseDouble(amountStr);
        quarters = (int) (amount * 100) / 25;

        // PLACE YOUR CODE ONLY ABOVE THIS LINE
        // PART I OUTPUT SECTION COMPLETE

        System.out.printf("Amount received($%,.0f), quarters returned(%,d)%n%n",amount, quarters);

        // PART II INPUT SECTION (COMPLETE)

        System.out.print("Part II-Enter seconds, minutes and hours as integers: ");
        int seconds = cin.nextInt();
        int minutes = cin.nextInt();
        int hours = cin.nextInt();

        // PLACE YOUR CODE ONLY BELOW THIS LINE
        // PLACE YOUR OUTPUT IN THIS VARIABLE

        String result = String.format("%02d:%02d:%02d", hours, minutes, seconds);

        // YOUR CODE MUST GO ABOVE THIS LINE
        // PART II - OUTPUT SECTION COMPLETE

        System.out.println("Result: " + result);
    }
}

我认为这是Eclipse中的某种bug。您可以通过尝试下面列出的每个解决方案来解决此问题。如果一个不行,试试下一个

  • 清理项目
  • 删除项目并再次导入(可能需要再次清理项目)
  • 如果以上不起作用,请尝试此链接。基本上从项目中删除JRE库,然后将其再次添加到项目中

希望这能有所帮助。

我认为这是Eclipse中的某种错误。您可以通过尝试下面列出的每个解决方案来解决此问题。如果一个不行,试试下一个

  • 清理项目
  • 删除项目并再次导入(可能需要再次清理项目)
  • 如果以上不起作用,请尝试此链接。基本上从项目中删除JRE库,然后将其再次添加到项目中

希望这有帮助。

在升级到JDK 8之后,您可能会遇到这个错误,因为一些旧接口现在在1.8中有了新的默认方法

  • 因此,首先验证您的eclipse支持JDK1.8,eclipse应该大于或等于4.3.2(EclipseKeplerSR2)
  • 若项目的源代码级别低于1.8,Eclipse会抱怨此错误,所以将源代码级别设置为1.8,编译器将不会通过任何异常
  • 第三种选择是,回滚到JDK 7以使用旧接口

希望这会有所帮助

在升级到JDK 8之后,您可能会遇到这个错误,因为一些旧接口现在在1.8中有了新的默认方法

  • 因此,首先验证您的eclipse支持JDK1.8,eclipse应该大于或等于4.3.2(EclipseKeplerSR2)
  • 若项目的源代码级别低于1.8,Eclipse会抱怨此错误,所以将源代码级别设置为1.8,编译器将不会通过任何异常
  • 第三种选择是,回滚到JDK 7以使用旧接口

希望这将有助于

我编辑了您的代码以添加代码标签。请始终在您的帖子中使用它。欢迎来到SO。在“…因为我刚刚发布的字符串已经过时”中,你说的“那个字符串”和“过时”是什么意思?我喜欢@Pshemo的编辑将“message”的拼写改成了错误的拼写,而它以前是正确的。至于OP的问题,你的环境有问题;这个代码对我来说很好。如果你使用JDK或JRE 8,那么这很可能是“java”,因为你使用的是Java 8;请参阅。我编辑了您的代码以添加代码标记。请始终在您的帖子中使用它。欢迎来到SO。在“…因为我刚刚发布的字符串已经过时”中,你说的“那个字符串”和“过时”是什么意思?我喜欢@Pshemo的编辑将“message”的拼写改成了错误的拼写,而它以前是正确的。至于OP的问题,你的环境有问题;这个代码对我来说很好。如果你使用JDK或JRE 8,那么这很可能是“java”,因为你使用的是Java 8;看见