Gregary Boyles
Newbie
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?
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: