Java 如何对字符串的双值求和

Java 如何对字符串的双值求和,java,android,Java,Android,我有一根像24.5公里10.1公里30.9公里的绳子 我想计算字符串中所有距离的总和,但我无法计算。我有一种数字形式的感觉 这是我的密码 String stringValue = getDistanceOnRoad(lat, long, lat2, long2); double sumValue = 0.0; Log.d("my string is", stringValue); try { sumValue = Double.parseDouble(stringValue);

我有一根像24.5公里10.1公里30.9公里的绳子

我想计算字符串中所有距离的总和,但我无法计算。我有一种数字形式的感觉

这是我的密码

String stringValue = getDistanceOnRoad(lat, long, lat2, long2);
double sumValue = 0.0;

Log.d("my string is", stringValue);
try {
    sumValue = Double.parseDouble(stringValue);
    Log.d("distance there plus", String.valueOf(sumValue));
} catch (NumberFormatException e){
    System.out.println("not a number");
}
我用这个方法得到了距离,一切正常,但我不能计算所有距离的总和


好的,问题是您试图解析字符串S=10.1km;到一个双变量。但是,字符串的km部分不是数字,因此java编译器无法解析它。相反,为km数定义一个双变量:双km=10.1,为km定义一个字符串变量。然后,当您想将其作为字符串时,请使用操作的答案重新定义km的变量。

试试这个

String test = "24.5 km10.1 km30.9 km";
String[] parsedString = test.split("(km)");
double sum = 0;
for(String s : parsedString) {
    sum += Double.parseDouble(s.trim());
}
试试这个

String s = "24.5 km10.1 km30.9 km";

String[] items = s.split("km");
double result = 0;

for (int i = 0 ; i < items.length ; i++) {   
    result = result + Double.parseDouble(items[i]); 
}

System.out.print("result = " + result);

您应该按km分割,然后求和这些值,方法如下:

private static double parseAndSum(String string) {

    double sumValue = 0.0;
    String[] nums = string.split("km");

    int i=0;
    for(i=0;i<nums.length;i++) {
        sumValue += Double.parseDouble(nums[i].trim());
    }
    return sumValue;
}

如果字符串类似于24.5 km10.1 km30.9 km,那么在将其转换为double之前,应该解析字符串

String stringValue = getDistanceOnRoad(lat, long, lat2, long2);
double sumValue = 0.0;

Log.d("my string is", stringValue);
try {
  String[] distances = stringValue.split(" km");
  for (String distance: distances) {
    sumValue = sumValue + Double.parseDouble(distance);
  }
  Log.d("distance there plus", String.valueOf(sumValue));
} catch (NumberFormatException e) {
  System.out.println("not a number");
}

什么是s1???我已经改变了。从什么时候开始24.5公里10.1公里30.9公里是一个数字?我想这个例外是应该得到的。那么什么是stringValue呢?这不是一个免费的代码编写服务,请展示你的代码/努力以及实际的问题是什么。特别是,您甚至没有尝试计算sum.java.lang.NumberFormatException:Invalid double:您的确切字符串是什么?因为它在上面的stringMy Log.d String=>d/my String中工作正常:24.5 km10.1 km30.9km@S.Ali对于我来说,我的解决方案在上面的string.java.lang.NumberFormatException:Invalid double:Oh中运行良好。我已经在我的电脑上测试过了,一切正常。你能给我你想要的字符串吗?我将检查againjava.lang.NumberFormatException:Invalid double:–我刚刚运行了它,检查了附带的屏幕截图。我的Log.d字符串=>d/我的字符串是:24.5 km10.1 km30.9 kmhmm。我已经看到了你的屏幕截图,它正在工作,但我不知道为什么我得到无效的double:error。那么getDistanceOnRoad方法返回字符串24.5 km10.1 km30.9 km?
String string = getDistanceOnRoad(latitude, longitude, prelatitute, prelongitude);    
double result = parseAndSum(string);
System.out.println("Total is : " + result + "km");
String stringValue = getDistanceOnRoad(lat, long, lat2, long2);
double sumValue = 0.0;

Log.d("my string is", stringValue);
try {
  String[] distances = stringValue.split(" km");
  for (String distance: distances) {
    sumValue = sumValue + Double.parseDouble(distance);
  }
  Log.d("distance there plus", String.valueOf(sumValue));
} catch (NumberFormatException e) {
  System.out.println("not a number");
}