乘以java的数组

时间:2014-03-15 21:27:44

标签: java android arrays multiplying

我很好奇如何通过一个因素多重排列数组?不是每个单元格(t [0],t [1]等)单独,而是作为整数。例:t [0] = 9 t [1] = 2 t [2] = 5,t [] = 925. 925次3 = 2775

基本上,我收到一个值并从ASCII转换为Decimal(我已经这样做了)。但是,我想将它乘以因子3.我是否需要将整个数组存储为字符串,然后使用乘法函数?

本节的相关代码

byte[] readBuf =(byte[]) msg.obj);
char x;
String readMessage = newString(readBuf,0,msg.arg1);
int[] t = new int[readMessage.length()];
for(int i = 0; i<readMessage.length(); i++)
{
    x = readMessage.charAt(i);
    int z = (int) x;//Array has been converted from ASCII into decimal values
    t[i] = z;//Array has been populated with decimal values

    //Confused about the next part, Convert back into string and then multiply string?
}

4 个答案:

答案 0 :(得分:1)

为什么要为char和int创建额外的变量,为表使用空间并在一行中将所有内容传递给另一个变量?据我所知,这就是你所需要的一切。

byte[] readBuf =(byte[]) msg.obj);
String readMessage = newString(readBuf,0,msg.arg1); //You create the string here
String final=""; //new string to be parsed
for(int i = 0; i<readMessage.length(); i++){ 
    final+=""+(int)readMessage.charAt(i); // get the charAt(i) cast it to int and give it to the string
}
return Integer.parseInt(final)*factor; //return the int multiplied by 3

答案 1 :(得分:0)

编辑:使用Double.parseDouble(readMessage)将其转换为十进制

ASCII字符只是整数

答案 2 :(得分:0)

我不确定我是否理解输入字符串的格式。这个例子是否解决了你的问题?

public static void main(String args[]) throws Exception {
    String input = "925";

    int parsed = Integer.parseInt(input);
    parsed *= 3;

    System.out.println(parsed); // prints 2775
}

答案 3 :(得分:0)

你的问题不清楚,我试着明白:你在一个数组中有一个字符串,其中零指数是最有意义的位置,而最后一个是不太有意义的位置。所以,如果你有123,情况是t [0] = 1,t [1] = 2,t [2] = 3。 如果它是正确的,那么你说你想重建这个数字(在我的例子中123并返回乘以一个因子,即3)。所以返回369。 这是我的解决方案,假设结果数字将低于MAXINT。 我也按原样保存你的代码,并将结果乘以一个因子值&#34;因子&#34; (INT)。

byte[] readBuf =(byte[]) msg.obj);
char x;
String readMessage = newString(readBuf,0,msg.arg1);
int[] t = new int[readMessage.length()];
String final="";
for(int i = 0; i<readMessage.length(); i++)
{
    x = readMessage.charAt(i);
    int z = (int) x;//Array has been converted from ASCII into decimal values
    t[i] = z;//Array has been populated with decimal values
    final+=""+t[i]; // add to String the char in position i.
    //Confused about the next part, Convert back into string and then multiply string?
}
return Integer.parseInt(final)*factor;