将字符串输入转换为Double并避免java.lang.NumberFormatException

将字符串输入转换为Double并避免java.lang.NumberFormatException,java,string,android-studio,double,numberformatexception,Java,String,Android Studio,Double,Numberformatexception,我需要将字符串输入转换为double,以便在输入超出一定范围时(使用带有运算符的if语句)可以创建toast弹出窗口。 编辑:input1是保存在文件室中的用户输入 我已尝试使用以下代码将字符串转换为double Double d=Double.parseDouble(String.valueOf(input1)) 但这带来了错误 “原因:java.lang.NumberFormatException:输入字符串:”com.example.mysugartracker。Input1@d89771

我需要将字符串输入转换为double,以便在输入超出一定范围时(使用带有<和>运算符的if语句)可以创建toast弹出窗口。 编辑:input1是保存在文件室中的用户输入

我已尝试使用以下代码将字符串转换为double
Double d=Double.parseDouble(String.valueOf(input1))
但这带来了错误
“原因:java.lang.NumberFormatException:输入字符串:”com.example.mysugartracker。Input1@d89771f""
在这个类中,我检索input1并使用输入填充recyclerView,这使我相信检索input1不是问题所在,而是将其转换为double的方法。(虽然我只是一个使用android studio的初学者,所以我可能错了)

java(显示弹出窗口的类)

我已将有问题的代码标记为**


我需要一种不同的方法将字符串输入转换为double,而不会导致java.lang.NumberFormatException或避免此错误的方法

我不知道Input1上有哪些方法可用,但只要调用提供值的方法,您的问题就会得到解决
String.valueOf(input1)
返回对象的字符串表示形式,这意味着它只调用
toString()
方法,在您的情况下,input1不会覆盖toString,因此调用的是
object.toString()

将其更改为以下内容:

Double d=Double.parseDouble(input1.getValue())

或者,实现
Input1.toString()

更新了基于评论的解决方案:

public class Input1 {
    @PrimaryKey(autoGenerate = true)
    private int id;
    @NonNull
    @ColumnInfo(name = "input1")
    private String mInput1;

    Input1(@NotNull String input1) {this.mInput1 = input1;}
    public String getInput1() {return this.mInput1;}

    //getter for id
    public int getId() {
        return id;
    }

    //setter for id
    public void setId(int id) {
        this.id = id;
    }

    // Just add this method to you Input1 class
    @Override
    public String toString() {

        return mInput1;
    }
}

您的问题是从
Input1
对象中获取文本。
Input1
类是否有获取文本的方法?如果是这样,您需要调用它。什么是
Input1
?@user207421 Input1是保存在房间数据库中的用户输入(我使用本教程创建了数据库)[这是一个从原始问题中省略了代码的类。@user207421是的,我知道。当我意识到我的错误时,我编辑了我的问题以添加到代码中,我尝试将行更改为
Double d=Double.parseDouble(input1.getValue());
,正如您所建议的,但我得到了错误
无法解析方法'getValue()“
。我已经编辑了我的问题以显示input1类,它是一个文件室实体。@因此,请在
input1
类中实现
getValue()
。@user207421我已将input1.java类的第一行更改为
public类input1实现getValue(){
但出现了错误
无法解析符号“getValue”
``公共字符串getValue(){return mInput1;}```或使用现有的
getInput1()
方法。
public class Input1 {
    @PrimaryKey(autoGenerate = true)
    private int id;
    @NonNull
    @ColumnInfo(name = "input1")
    private String mInput1;

    Input1(@NotNull String input1) {this.mInput1 = input1;}
    public String getInput1() {return this.mInput1;}

    //getter for id
    public int getId() {
        return id;
    }
    //setter for id
    public void setId(int id) {
        this.id = id;
    }

}
public class Input1 {
    @PrimaryKey(autoGenerate = true)
    private int id;
    @NonNull
    @ColumnInfo(name = "input1")
    private String mInput1;

    Input1(@NotNull String input1) {this.mInput1 = input1;}
    public String getInput1() {return this.mInput1;}

    //getter for id
    public int getId() {
        return id;
    }

    //setter for id
    public void setId(int id) {
        this.id = id;
    }

    // Just add this method to you Input1 class
    @Override
    public String toString() {

        return mInput1;
    }
}