所以,现在我有了这个字符串:
String csfo = "([csfo_num = 333015303][ csfo_minimum = 4044504600][ csfo_offering = 48526][csfo_add_ind A])";
我希望能够获得字符串的这一部分,但我不知道如何做到这一点。
需要输出:
String[] requiredOutput;
requiredOutput[1] = 48526; // csfo_offering
requiredOutput[2] = csfo_add_ind A;
或
requiredOutput[2] = A; // csfo_add_ind
编辑: 我已经使用了你的一些建议,并尝试使用subString,但它似乎是一个临时修复,因为如果原始字符串的长度发生变化,那么它将在我的调用中抛出一个扳手。我接下来会尝试使用正则表达式,因为它似乎通过模式匹配进行,我可能能够用它来解决问题。谢谢大家的帮助。
建议仍然感激不尽!
答案 0 :(得分:1)
数字总是一样长吗?如果是,请使用String.subString
。如果不使用String.indexOf("csfo_add")
来查找" csfo_add"的位置零件,然后找到所需信息的相对位置。
答案 1 :(得分:1)
您好,如果您的字符串始终具有相同的模式,也可以使用split
。
例如
String csfo = "([csfo_num = 333015303][ csfo_minimum = 4044504600][ csfo_offering = 48526][csfo_add_ind A])";
System.out.println(csfo.split("csfo_add_ind ")[1].split("\\]\\)")[0]);
获得requiredOutput[2] = A; // csfo_add_ind
这将获得第一个
String[] requiredOutput = new String[2];
String csfo = "([csfo_num = 333015303][ csfo_minimum = 4044504600][ csfo_offering = 48526][csfo_add_ind A])";
requiredOutput[0] = "csfo_add_ind " + csfo.split("csfo_add_ind ")[1].split("\\]\\)")[0];
requiredOutput[1] = csfo.split("\\]\\[csfo_add_ind ")[0].split("csfo_offering = ")[1];
//System.out.println(requiredOutput[0] + " et " + requiredOutput[1] );