将字符串(FF FF FF FF FF FF)转换为int数组java
我正在解析一个XML文件,其中包含以下条目:将字符串(FF FF FF FF FF FF)转换为int数组java,java,android,hashmap,hex,type-conversion,Java,Android,Hashmap,Hex,Type Conversion,我正在解析一个XML文件,其中包含以下条目: FF FF FF FF FF 我将它们保存到一个HashMap中,现在我想将得到的字符串转换成int[] 但我不知道怎么做。 我试着用以下代码来解析它:integer.parseInt(mEntry.getValue().toString(),16),但失败,出现错误NumberFormatExceptoin:Invalid int:“FF FF FF FF FF FF” 我用谷歌搜索了我的问题,但没有找到解决问题的办法。 有什么办法可以做到这一点吗
FF FF FF FF FF
我将它们保存到一个HashMap
中,现在我想将得到的字符串
转换成int[]
但我不知道怎么做。
我试着用以下代码来解析它:integer.parseInt(mEntry.getValue().toString(),16)代码>,但失败,出现错误NumberFormatExceptoin:Invalid int:“FF FF FF FF FF FF”
我用谷歌搜索了我的问题,但没有找到解决问题的办法。
有什么办法可以做到这一点吗?可能要将其作为int[]保存在Hashmap
中
下面是解析代码:
public static Map<String, String> paramListConf1(Context c, int listResID) {
Map<String, String> map = null;
XmlResourceParser parser = c.getResources().getXml(listResID);
String key = "", value = "";
try {
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_DOCUMENT) {
} else if (eventType == XmlPullParser.START_TAG) {
if (parser.getName().equals("map")) {
boolean isLinked = parser.getAttributeBooleanValue(
null, "linked", false);
map = isLinked ? new LinkedHashMap<String, String>()
: new HashMap<String, String>();
} else if (parser.getName().equals("windowcontrol")) {
key = parser.getAttributeValue(null, "key");
if (null == key) {
parser.close();
return null;
}
}
} else if (eventType == XmlPullParser.TEXT) {
if (null != key) {
value = parser.getText();
}
} else if (eventType == XmlPullParser.END_TAG) {
if (parser.getName().equals("windowcontrol")) {
map.put(key, value);
key = null;
value = null;
}
}
eventType = parser.next();
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
return map;
}
我想那是因为FF字节之间的空格。它们应该是ffffffffffffff
这将修复它:Integer.parseInt(mEntry.getValue().toString().replaceAll(“\\s+”,”),16)代码>我认为这是因为FF字节之间的空格。它们应该是ffffffffffffff
这将修复它:Integer.parseInt(mEntry.getValue().toString().replaceAll(“\\s+”,”),16)代码>我认为这是因为FF字节之间的空格。它们应该是ffffffffffffff
这将修复它:Integer.parseInt(mEntry.getValue().toString().replaceAll(“\\s+”,”),16)代码>我认为这是因为FF字节之间的空格。它们应该是ffffffffffffff
这将修复它:Integer.parseInt(mEntry.getValue().toString().replaceAll(“\\s+”,”),16)代码>我假设您希望字符串“FF FF FF FF FF FF FF”作为一个int数组,而不是一个int,因为它对于int来说太大了,长度是-1
String hexString = "FF FF FF FF FF FF FF FF";
String[] hexNumbers = hexString.split(" "); //split the string
int[] ints = new int[hexNumbers.length];
for(int i = 0; i<hexNumbers.length; i++) {
ints[i] = Integer.parseInt(hexNumbers[i], 16); //convert from hexString to int
}
for(int i = 0; i<ints.length; i++) {
System.out.println(ints[i]);
}
String hextstring=“FF FF FF FF FF”;
字符串[]hexNumber=hexString.split(“”)//拆线
int[]ints=新的int[hexNumbers.length];
对于(int i=0;i我假设您希望字符串“FF FF FF FF FF FF”作为一个int数组,而不是一个int,因为它对于int来说太大了,而对于长度为-1的int来说太长了
String hexString = "FF FF FF FF FF FF FF FF";
String[] hexNumbers = hexString.split(" "); //split the string
int[] ints = new int[hexNumbers.length];
for(int i = 0; i<hexNumbers.length; i++) {
ints[i] = Integer.parseInt(hexNumbers[i], 16); //convert from hexString to int
}
for(int i = 0; i<ints.length; i++) {
System.out.println(ints[i]);
}
String hextstring=“FF FF FF FF FF”;
String[]hexNumbers=hexString.split(“”;//拆分字符串
int[]ints=新的int[hexNumbers.length];
对于(int i=0;i我假设您希望字符串“FF FF FF FF FF FF”作为一个int数组,而不是一个int,因为它对于int来说太大了,而对于长度为-1的int来说太长了
String hexString = "FF FF FF FF FF FF FF FF";
String[] hexNumbers = hexString.split(" "); //split the string
int[] ints = new int[hexNumbers.length];
for(int i = 0; i<hexNumbers.length; i++) {
ints[i] = Integer.parseInt(hexNumbers[i], 16); //convert from hexString to int
}
for(int i = 0; i<ints.length; i++) {
System.out.println(ints[i]);
}
String hextstring=“FF FF FF FF FF”;
String[]hexNumbers=hexString.split(“”;//拆分字符串
int[]ints=新的int[hexNumbers.length];
对于(int i=0;i我假设您希望字符串“FF FF FF FF FF FF”作为一个int数组,而不是一个int,因为它对于int来说太大了,而对于长度为-1的int来说太长了
String hexString = "FF FF FF FF FF FF FF FF";
String[] hexNumbers = hexString.split(" "); //split the string
int[] ints = new int[hexNumbers.length];
for(int i = 0; i<hexNumbers.length; i++) {
ints[i] = Integer.parseInt(hexNumbers[i], 16); //convert from hexString to int
}
for(int i = 0; i<ints.length; i++) {
System.out.println(ints[i]);
}
String hextstring=“FF FF FF FF FF”;
String[]hexNumbers=hexString.split(“”;//拆分字符串
int[]ints=新的int[hexNumbers.length];
对于(int i=0;ito一个int数组,linkint[]test={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
在我看来,这就像是你试图从整个字符串中解析一个整数。空格解释了你得到的格式异常。我假设你想在一个包含8个元素的数组中以整数的形式得到'FF'。为此,请在空格上拆分字符串,以获得一个字符串数组,其中每个索引都包含“FF”。构造一个大小相同的int[],然后解析各个元素并按当前方式进行解析,将每个值存储在int[]中在相应的索引处。所以拆分似乎是唯一要做的事情。我知道这是可能的,但我认为可能有一种更简单的方法来处理int数组,linkint[]test={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
在我看来,这就像你试图从整个字符串中解析一个整数。空格解释了你得到的格式异常。我假设你想在一个包含8个元素的数组中得到一个整数“FF”(所有FF都来自你的示例)。为此,在空格上拆分字符串,得到一个字符串数组,其中每个索引都包含“FF”。构造一个int[]相同大小,解析单个元素并像当前一样进行解析,将每个值存储在int[]中的相应索引处。因此,拆分似乎是唯一要做的事情。我知道这是可能的,但我认为可能有一种更简单的方法来处理int数组,linkint[]test={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
在我看来,您试图从整个字符串中解析一个整数。空格解释了您得到的格式异常。我假设您想要在一个包含8个元素的数组中以整数的形式得到“FF”(所有FF来自您的示例)。为此,请在空格上拆分字符串,以获得一个字符串数组,其中每个索引都包含“FF”。构造一个大小相同的int[],然后解析各个元素并按当前方式进行解析,将每个值存储在int[]中在相应的索引处。所以拆分似乎是唯一要做的事情。我知道这是可能的,但我认为可能有一种更简单的方法来处理int数组,linkint[]test={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
在我看来,这就像你试图从整个字符串中解析一个整数。空格解释了你得到的格式异常。我假设你想在一个包含8个元素的数组中得到一个整数“FF”(所有FF都来自你的示例)。为此,在空格上拆分字符串,得到一个字符串数组,其中每个索引都包含“FF”。构造一个int[]大小相同,解析各个元素并像当前一样进行解析,将每个值存储在相应索引的int[]中。因此,拆分似乎是唯一要做的事情。我知道这是可能的,但我认为可能有一种更简单的方法来做这件事n