• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Integer.parseInt(str) crashing my app

There is clearly something I am not understanding about Integer.parseInt(String).
Calling this function in public void set(String strIPAddress) is causing my app to crash.
I don't get it! What am I doing wrong?

Code:
package com.example.greg.irrigationcontroller;


/**
* Created by Greg on 5/10/2017.
*/


public class CIPAddress
{
    public CIPAddress()
    {
        m_arrayIP = new byte[4];
        m_strDebug = new String("");
    }
    public CIPAddress(CharSequence strIPAddr)
    {
        m_arrayIP = new byte[4];
        m_strDebug = new String("");
        set(strIPAddr);
    }
    public CIPAddress(String strIPAddr)
    {
        m_arrayIP = new byte[4];
        m_strDebug = new String("");
        set(strIPAddr);
    }
    public CIPAddress(final int n1, final int n2, final int n3, final int n4)
    {
        m_arrayIP = new byte[4];
        m_strDebug = new String("");
        set(n1, n2, n3, n4);
    }
    public void set(CharSequence strIPAddress)
    {
        final StringBuilder sb = new StringBuilder(strIPAddress.length());
        sb.append(strIPAddress);
        set(strIPAddress.toString());
    }
    public void set(byte[] arrayIP)
    {
        set(arrayIP[0], arrayIP[1], arrayIP[2], arrayIP[3]);
    }
    public void set(String strIPAddress)
    {
        if (strIPAddress.length() > 0)
        {
            String str = new String("");
            int nPos1 = 0, nPos2 = 0;

            for (int nI = 0; nI < 4; nI++)
            {
                nPos2 = strIPAddress.indexOf(".", nPos1);
                if (nPos2 == -1)
                    nPos2 = strIPAddress.length();

                str = strIPAddress.substring(nPos1, nPos2);
                m_arrayIP[nI] = (byte)Integer.parseInt(str);

                if (nI == 1)
                break;

                nPos1 = nPos2;
            }
        }
    }
    public void set(final int n1, final int n2, final int n3, final int n4)
    {
        m_arrayIP[0] =(byte)n1;
        m_arrayIP[1] = (byte)n2;
        m_arrayIP[2] = (byte)n3;
        m_arrayIP[3] = (byte)n4;
    }
    public String toString()
    {
        String strIP = new String();
        strIP = String.valueOf(m_arrayIP[0] + ".");
        strIP = String.valueOf(m_arrayIP[1] + ".");
        strIP = String.valueOf(m_arrayIP[2] + ".");
        strIP = String.valueOf(m_arrayIP[3]);
        return strIP;
    }
    public void convertBroadcast()
    {
        m_arrayIP[0] &= 255;
        m_arrayIP[1] &= 255;
        m_arrayIP[2] &= 255;
        m_arrayIP[3] = (byte)255;
    }
    protected byte[] m_arrayIP;
    public String m_strDebug;
}
 
Last edited:
Back
Top Bottom