Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java中的长字符串中提取多个值/字符串_Java_String_Extract - Fatal编程技术网

从java中的长字符串中提取多个值/字符串

从java中的长字符串中提取多个值/字符串,java,string,extract,Java,String,Extract,我需要一种有效的方法从变量字符串中提取许多不同的值/字符串 double A = 0; int B = 0; double C = 0; String D = null; int E = 0; double F = 0; String D = null; [...] string1 = "A=1.00;B=2;C=1.00;D=TEST;E=24;F=0.00;D=FS[...]" string2 = "A=3.00;B=3;D=SOMESTRING;E=24;F=0.00;[..]" st

我需要一种有效的方法从变量字符串中提取许多不同的值/字符串

double A = 0;
int B = 0;
double C = 0;
String D = null;
int E = 0;
double F = 0;
String D = null;
[...]


string1 = "A=1.00;B=2;C=1.00;D=TEST;E=24;F=0.00;D=FS[...]"
string2 = "A=3.00;B=3;D=SOMESTRING;E=24;F=0.00;[..]"
string3 ="A=2.64;B=4;C=1.00;D=SOMEOTHERSTRING;E=24;D=FS[...]"
有没有高效、快速、优雅的方法

我已经用.split(“;”)尝试过了,但是如果字符串是variabel,我就有问题了


感谢您对本主题的任何想法/帮助

如果可以使用字符串参数的setter方法,则可以使用反射

String[] split1 = string1.split(";");
for (int i=0;i<split1.length;i++) {
  String[] insideSplit = split1[i].split("=");
  java.lang.reflect.Method method;
  try {
    method = this.getClass().getMethod("set" + insideSplit[0], String.class);
    method.invoke(this, insideSplit[1]);
  } catch (Exception e) {
  // ...
 }
}
String[]split1=string1.split(“;”);

对于(int i=0;是了解正则表达式的时候了。
split
有什么问题吗?“如果字符串是variabel”是什么意思?是不是有些字符串可能没有分号分隔?@tobias_k在这种情况下使用split不如regex好。有一个清晰的模式。可以很容易地从中提取值。@marounnaroun但是你有一个更大的问题-你必须使用regex:P
string1 = "A=1.00;B=2;C=1.00;D=TEST;E=24;F=0.00;D=FS[...]"

Matcher matcher = Pattern.compile("[A][=]([0-9]+\\.[0-9]+)").matcher(info);
if (matcher.find()) {
    A = Double.parseDouble(matcher.group(1));
}