java中把{qtzt=0.0, error_num=0.0}拆分成包含变量和数据的数组,
时间: 2024-10-24 09:13:16 浏览: 19
全面解析Java支持的数据类型及Java的常量和变量类型
在 Java 中,如果你有一个类似字符串格式 `{variable1=value1, variable2=value2}` 的内容,想要将其拆分成两个数组分别存储变量名(key)和对应的数据(value),你需要先解析字符串,然后可以使用正则表达式或者手动的方式来完成。
这里是一个使用正则表达式的示例,假设你想提取所有的 key-value 对:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String jsonLikeStr = "{qtzt=0.0, error_num=0.0}";
// 定义正则表达式模式
Pattern pattern = Pattern.compile("\\w+=\\d+(\\.\\d+)?");
Matcher matcher = pattern.matcher(jsonLikeStr);
while (matcher.find()) {
String keyValue = matcher.group();
String[] keyValueArray = keyValue.split("=");
String variable = keyValueArray[0];
double value = Double.parseDouble(keyValueArray[1]);
// 存储到对应的数组中
String[] variables = {"qtzt", "error_num"}; // 假设已有固定变量列表
double[] values = {value, value}; // 初始化一个大小相等的值数组
int index = Arrays.asList(variables).indexOf(variable);
if (index != -1) {
values[index] = value;
}
}
System.out.println("Variables: " + Arrays.toString(variables));
System.out.println("Values: " + Arrays.toString(values));
}
}
```
这段代码首先创建一个正则表达式模式匹配 key-value 对,然后通过 `Matcher` 遍历匹配结果,并将每对拆分为变量名和数值。最后将它们分别添加到预定义的数组中。
阅读全文