用java乘法数组

用java乘法数组,java,android,arrays,multiplication,Java,Android,Arrays,Multiplication,我很好奇如何按因子组合数组?不是每个单元格(t[0]、t[1]等)单独出现,而是作为一个整数出现。例:t[0]=9t[1]=2t[2]=5,t[]=925。925乘以3=2775 基本上,我接收一个值并将其从ASCII转换为十进制(我已经这样做了)。但是,我想用它乘以3。我是否需要将整个数组存储为字符串,然后使用乘法函数 本节的相关代码 byte[] readBuf =(byte[]) msg.obj); char x; String readMessage = newString(readBu

我很好奇如何按因子组合数组?不是每个单元格(t[0]、t[1]等)单独出现,而是作为一个整数出现。例:t[0]=9t[1]=2t[2]=5,t[]=925。925乘以3=2775

基本上,我接收一个值并将其从ASCII转换为十进制(我已经这样做了)。但是,我想用它乘以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?
}
byte[]readBuf=(byte[])msg.obj;
字符x;
String readMessage=newString(readBuf,0,msg.arg1);
int[]t=new int[readMessage.length()];

对于(inti=0;iEdit):使用Double.parseDouble(readMessage)将其转换为十进制


ASCII字符仅为整数

我不确定是否理解输入字符串的格式。此示例解决了您的问题吗

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

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

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

你的问题不清楚,我试图理解:数组中有一个字符串,其中零索引是最有意义的位置,最后一个是不太有意义的位置。因此,如果你有123,情况是t[0]=1,t[1]=2,t[2]=3。 如果它是正确的,那么你说你想重建这个数字(在我的例子123中,返回乘以一个因子的值,即3),那么返回369。 这里是我的解决方案,假设得到的数字将低于MAXINT。 我还按原样保存代码,并返回结果乘以值“factor”(int)中的一个因子

byte[]readBuf=(byte[])msg.obj;
字符x;
String readMessage=newString(readBuf,0,msg.arg1);
int[]t=new int[readMessage.length()];
字符串final=“”;

对于(int i=0;i为什么要为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
byte[]readBuf=(byte[])msg.obj;
String readMessage=newString(readBuf,0,msg.arg1)//在这里创建字符串
字符串final=“”//要分析的新字符串

对于(int i=0;i为什么不使用
Integer.parseInt()
一次将整个字符串
readMessage
解析为一个整数?您是说它还将ASCII转换为十进制(假设它将字符串转换为一个整数)?也许我误解了。你想把ASCII字符码或它们代表的数字乘以一个值吗?当我指的是十进制时,我指的是十进制数字系统0-9,严格地说是整数。在我上面的代码中,我将ASCII转换为十进制。这样我就可以去掉我的forloop和数组,只放那一行代码了?在这种情况下,使用
I如果字符串包含整数,则为nteger.parseInt
;如果字符串包含浮点值,则为
Double.parseDouble
。如果我将Double用作ASCII字符,它将返回什么?它将“获取”整数部分并显示等效的ASCII字符。请尝试以下代码以查看结果:)Double y=85.7;System.out.println(y+“=”+(char)y);System.out.println((char)85);如果您的字符串输入为=“!”;,你的代码会打印99吗!等于33英寸(ASCII到十进制),然后将其乘以3。不,
Integer.parseInt
将抛出一个
NumberFormatException
。你能举个例子说明这样一个乘法的结果是什么样的吗?谢谢,这就是我想要的。
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