• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2249
  • Last Modified:

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
Asked:
edi02
  • 12
  • 5
1 Solution
 
zzynxSoftware engineerCommented:
BigInteger.valueOf() doesn't take a String
0
 
zzynxSoftware engineerCommented:
Try

B_array[i] = new BigInteger(contents.substring(x,x+3));
0
 
zzynxSoftware 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
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
zzynxSoftware engineerCommented:
Add

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

To check the result
0
 
edi02Author Commented:
thanx
0
 
zzynxSoftware engineerCommented:
You're welcome.
Kindly close this Q if you feel like your problem is solved.
0
 
edi02Author Commented:
May i ask u one more question ...

How do you transform from Integer to BigInteger?
0
 
zzynxSoftware engineerCommented:
       Integer i = new Integer(2000);
        BigInteger b = new BigInteger("" + i);
0
 
zzynxSoftware engineerCommented:
Or

       BigInteger b = BigInteger.valueOf(i.intValue());
0
 
edi02Author 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
 
edi02Author Commented:
This worked:

p_calc[indic] = new BigInteger("" + p_found);
0
 
zzynxSoftware 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
 
zzynxSoftware engineerCommented:
Still questions/problems?
0
 
edi02Author 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
 
zzynxSoftware 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
 
zzynxSoftware engineerCommented:
Since you posted another Q for that last question, please close this one.
0
 
NaeemgCommented:
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
Naeem Shehzad Ghuman
0
 
zzynxSoftware engineerCommented:
Thanks.

(Better accept the real "answer" as answer for the people that read it afterwards)
0

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

  • 12
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now