String str="2x+5=15";
//here how to find x
String res[]=str.split([+=]);
int x=Integer.parseInt(res[0].charAt(0));
int y=Integer.parseInt(res[1]);
int z=Integer.parseInt(res[2]);
int res=(z-y)/x;
System.out.println(res[0].charAt(1)+" is "+res);
还有其他方法可以解决这些线性方程吗?我是初学者..而且这种方法看起来很糟糕......
答案 0 :(得分:0)
你可以尝试做一些事情,比如使用for循环遍历string
并检查每个char
,如果它是一个特殊的char
(+, -, *)
,那么每当你得到char
从上次点击这样的int
时获取字符串并将其解析为classpath 'com.android.tools.build:gradle:2.3.3'
,然后进行计算。你需要注意一些事情,但你可以随时询问是否遇到了更多问题。
祝你好运
答案 1 :(得分:0)
模式匹配将帮助您:
String str = "-50000x -50000 = -150000"; //ax+b=c
Pattern p = Pattern.compile("^(-?\\d+)\\s?(x)\\s?\\+?\\s?(-?\\d+)\\s?=\\s?(-?\\d+)$");
Matcher m = p.matcher(str);
double a = 0, b = 0, c = 0;
if (m.find()) {
a = Double.valueOf(m.group(1));
b = Double.valueOf(m.group(3));
c = Double.valueOf(m.group(4));
double res = (c - b) / a;
System.out.println(m.group(2) + " is " + res); //x is 2.0
}
模式:
\s
用于空格|| \d
用于数字minus
或不double
而不是int
进行划分在google //中键入“java 8 pattern”可以获得详细解释,在那里你可以解释我制作的模式的所有元素
此处完美匹配的示例:Regex101 demo
答案 2 :(得分:0)
import java.util.*;
class stack
{
public static void main(String[] args)
{
String str="2x+5=15"; //here how to find x
StringTokenizer st=new StringTokenizer(str,"+=");
String aa=st.nextToken();
int x= Character.getNumericValue(aa.charAt(0)); //char to int conversion.
int y=Integer.parseInt(st.nextToken());
int z=Integer.parseInt(st.nextToken());
int res=(z-y)/x;
System.out.println(res);
}
}
以下是您的问题的解决方案。