我想写一段java程序,输入的参数是String s,List<Integer> num,其中s=680D00020005320102000000010001D551,num是个list,包含2 8 16,表示0~2,2~8,8~16之间的数据,我希望通过解析num就能把s的数据解析出来,放到一个list中
时间: 2024-03-05 14:52:44 浏览: 64
好的,根据你的描述,我理解你的需求是将字符串 s 按照 num 中规定的位置分割,并转换成对应的十进制数,最后放到一个 List 中返回。下面是一个示例代码实现:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
String s = "680D00020005320102000000010001D551";
List<Integer> num = new ArrayList<>();
num.add(0);
num.add(2);
num.add(8);
num.add(16);
List<Integer> result = parseString(s, num);
System.out.println(result);
}
public static List<Integer> parseString(String s, List<Integer> num) {
List<Integer> result = new ArrayList<>();
int start = 0;
for (int end : num) {
String substring = s.substring(start, end);
int value = Integer.parseInt(substring, 16);
result.add(value);
start = end;
}
return result;
}
}
```
运行结果为:[104, 2, 131073, 54513],表示将 s 按 0~2、2~8、8~16 三个位置分割后转换成的十进制数。
阅读全文