• Status: Solved
• Priority: Medium
• Security: Public
• Views: 2306

# string to BigInteger array

I have a string (contents) wich is a concatation of numbers (129012002150...) and I use every group of 3 to load a BigInteger array with them:

BigInteger[] B_array;
Int i;

i = 0;
for (int x=0; x < contents.length()-3; x+=3)
{
B_array[i] = BigInteger.valueOf(contents.substring(x,x+3)));
i = i +1;
}

and it doesn't work. I want to have in my B_array something like:
129
12
2
150
.
.
0
edi02
• 12
• 5
1 Solution

Software engineerCommented:
BigInteger.valueOf() doesn't take a String
0

Software engineerCommented:
Try

B_array[i] = new BigInteger(contents.substring(x,x+3));
0

Software engineerCommented:
This works:

String contents = "129012002150";
BigInteger[] B_array = new BigInteger[contents.length()/3];      // <<<<< have to new these ones
int i = 0;
for (int x=0; x <= contents.length()-3; x+=3) {                        // x <= instead of x <
B_array[i] = new BigInteger(contents.substring(x,x+3));
i++;
}
0

Software engineerCommented:

for (int  j=0; j<B_array.length; j++)
System.out.println( ((BigInteger)B_array[j]).floatValue());

To check the result
0

Author Commented:
thanx
0

Software engineerCommented:
You're welcome.
Kindly close this Q if you feel like your problem is solved.
0

Author Commented:
May i ask u one more question ...

How do you transform from Integer to BigInteger?
0

Software engineerCommented:
Integer i = new Integer(2000);
BigInteger b = new BigInteger("" + i);
0

Software engineerCommented:
Or

BigInteger b = BigInteger.valueOf(i.intValue());
0

Author Commented:
I tried that and got this error:

C:\Second\second.java:167: int cannot be dereferenced
p_calc[indic] = BigInteger.valueOf(p_found.intValue());
Were i have at the start:

private static BigInteger[] p_calc = new BigInteger[100];
0

Author Commented:
This worked:

p_calc[indic] = new BigInteger("" + p_found);
0

Software engineerCommented:
>> int cannot be dereferenced

if p_found is an int then that should have been
p_calc[indic] = BigInteger.valueOf(p_found);

The one you wrote would work id p_found was an Integer
0

Software engineerCommented:
Still questions/problems?
0

Author Commented:
Ahh hopefully the last one ... :-)

Trying to convert a String to a Char. I know exactly my Strings are all between 0 and 255. So im sure they will have each of them a Char representation.

0

Software engineerCommented:
Do you mean a String that contains from "0" to "255" ?
>> String to Char
You mean Character of char?

String s = "123";
char c = (char) Integer.parseInt(s);
0

Software engineerCommented:
Since you posted another Q for that last question, please close this one.
0

Commented:
can this code help u out.

String myStr = "ThisData";
Char[] myChar = new Char[myStr.getLength()];

for(int i = 0; i < myStr.getLenght(); i++)
myChar[i] = myStr.charAt(i);

Bye
0

Software engineerCommented:
Thanks.

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.