2

我是java新手,我正在尝试创建一个android应用程序,如果你可以倾斜你的设备来旋转一个imageview。我什么都有,除了 imageview 旋转错误的方向。所以如果我的双精度数> 0,我想在它前面放一个-。但是如果它 < 0,我想删除它前面的 - 。我试过这样做:

这是变量:

double xaxis;
String xaxis3;

这是我的代码:

if (xaxis < 0) {
        xaxis3 = Double.toString(xaxis);
        xaxis3 = xaxis3.replaceAll("-", "");
        double xaxis = Double.parseDouble(xaxis3);
    }

    else {
        xaxis3 = Double.toString(xaxis);
        xaxis3 = ("-" + xaxis3);
        double xaxis = Double.parseDouble(xaxis3);
    }

请对我好一点,想想我是编程新手。谢谢!

4

3 回答 3

6

嗯,我想你想要:

xaxis = -xaxis;

但目前尚不清楚您为什么要使用字符串表示...避免字符串转换,除非您确实需要它们。

此外,声明一个隐藏实例变量的新局部变量,并在块的末尾这样做,不会有用:

... {
    xaxis3 = Double.toString(xaxis);
    xaxis3 = ("-" + xaxis3);
    double xaxis = Double.parseDouble(xaxis3);
}

你需要小心这样的事情——尽管我希望一个好的 IDE 在这种情况下警告你一个未使用的局部变量,并且希望也是重复的名称。

于 2013-04-19T15:07:38.273 回答
1

你有没有尝试过

xaxis3 = Double.toString(-xaxis);

或者

String your_string = "" + (-xaxis);
于 2013-04-19T15:07:57.140 回答
0

目前尚不清楚您想要实现什么,但如果您不想跨越 X 轴边界,这就是您需要的:

if(xaxis < 0 || xaxis > MAX_AXIS_X) {
    xaxis = -xaxis;
} 
于 2013-04-19T15:15:55.330 回答