我想解析String中的数字。
示例输入字符串:0 = 2*x+2*x^2-4
转换为:
leftside = 0
rightside = 2*x,2*x^2,-4
最后,我想将数字保存在leftN = 0
,rightX = 2
如何做到这一点?任何提示?
答案 0 :(得分:2)
首先,您可以使用方法split()
将字符串拆分为两个LHS和RHS
方法签名看起来像这样,
public String[] split(String regex, int limit) //limit: maximum strings splited
或
public String[] split(String regex)
简单的例子也许,
String[] str_array = "0 = 2*x+2*x^2-4".split(" = ");
String LHS = str_array[0];
String RHS = str_array[1];
通过与elements[]
和-
分开,进一步分割RHS字符串并将其设为+
,这样您就可以进一步划分并获得RHS作为条款。
将数字设为int
你可以使用,
try{
Integer.parseInt(elements[i]);
}catch(NumberFormatException e){
parsable = false;
}
答案 1 :(得分:0)
将您想要的字符串拆分为不同的字符串
String[] s = display.split("=");
答案 2 :(得分:0)
如果您想要检索0和2的值,可以进一步使用split()
方法检索确切的值:
String display = "0 = 2*x+2*x^2-4";
int leftN = Integer.parseInt(display.split("=")[0].trim());
int rightX = Integer.parseInt(display.split("=")[1].trim().split("\\*")[0].trim());
System.out.println(leftN + ", " + rightX);
//output: 0, 2
第一行从=
处的分割中检索第一个值。
第二行从=
处的拆分中检索第二个值,然后拆分*
的所有情况。它从该分割中检索第一个值。 trim()
是为了确保没有空格,这会产生NumberFormatException
。
但是,如果您不希望值为int
值:
String display = "0 = 2*x+2*x^2-4";
String leftN = (display.split("=")[0].trim();
String rightX = display.split("=")[1].trim().split("\\*")[0].trim();
System.out.println(leftN + ", " + rightX);
//output: 0, 2
此外,如果您想抓住等式2
部分的x^2
:
String rightX = display.split("\\^")[1].trim().split("-")[0].trim();