数组和字符串乘法

时间:2014-01-03 12:55:39

标签: java arrays

我有一个来自tsv文件的二维数组。该数组名为root,并具有以下信息:

HG  sn  FA  
PC  2   16:0
PI  1   18:0
PS  3   20:0
PE  2   24:0
        26:0
        16:1
        18:2

然后我有一些字符串:

 String lc = 34:2 // It is a user input so it could be another number
 String result = 2 // again a user input so it could be 1,2 or 3

34:2是一个不应分割的数字。

我需要从数组中的行FA获取值root[i][2],它们总和在一起可以是String lc的值。字符串结果告诉我有多少值应该加在一起,如果是1,2或3。

一个例子:

String lc = 34:2
String result = 2

这意味着我需要在数组中找到2个值,它们总和的总和将等于34:2,这可能是16:1 + 18:1。

我需要从打印的数组中获取两个值。

1 个答案:

答案 0 :(得分:0)

您不能将String和int相乘。您必须先将String转换为int或double。

//String to double
double doubleVal = Double.parseDouble(stringVal);
//String to int 
int intVal = Integer.parseInt(stringVal);

然后你可以进行任何数学运算

//multiplication exemple
double result = doubleVal * 1234;

然后,如果需要,可以将其转换回字符串

//double to String
String s = ""+result;

编辑好的32:2表示32.2所以这是解决方案

    double x = 2.0; //you have your x doublevalue
    String y = "32:2"; //you have your y String value

    String nums = y.replace(":",".");
    double ydouble = Double.parseDouble(nums); // equal 32.2

    double res = ydouble / x; //32.2/2 = 16.1

    for (int i = 0; i < root.lenght; i++) {


        //same thing here, we convert the FA number to a double
        String nums = root[i][2].replace(":",".");
        double rdouble  = Double.parseDouble(nums);


        if(res == rdouble)
            return root[i][2]; //solution found

    }
    return null;

希望有所帮助