在java中获取字符串的一部分

时间:2014-04-04 15:27:38

标签: java string

所以,现在我有了这个字符串:

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,但它似乎是一个临时修复,因为如果原始字符串的长度发生变化,那么它将在我的调用中抛出一个扳手。我接下来会尝试使用正则表达式,因为它似乎通过模式匹配进行,我可能能够用它来解决问题。谢谢大家的帮助。

建议仍然感激不尽!

2 个答案:

答案 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] );