如果给出一个字符串,如"(-2)x^(-2)+(3)x^(1)-(18)x^(-45)"
我将如何使用split()来获取指数?所以这个例子会返回[-2, 1, -45]
。我试图找出正则表示法,但它很混乱。我最近来的是string.split("x\\^\\(")
,但它并没有完全分裂它,我想如何。如何解析指数的多项式
1
A
回答
0
试试这个
String str = "(-2)x^(-2)+(3)x^(1)-(18)x^(-45)";
char[] chars = str.toCharArray();
List<String> exponents = new ArrayList<String>();
for(int i=0; i<chars.length; i++) {
if(chars[i] == '^') {
if(++i<chars.length && chars[i] == '(') {
StringBuilder sb = new StringBuilder();
while(++i<chars.length && chars[i] != ')') {
sb.append(chars[i]);
}
exponents.add(sb.toString());
}
}
}
0
试试这个,如果你需要一个基于正则表达式的解决方案:
String line = "(-2)x^(-2)+(3)x^(1)-(18)x^(-45)";
String pattern = ".*?\\^\\(([\\d-]+)\\)[\\+-]*";
Pattern r = Pattern.compile(pattern,Pattern.MULTILINE);
Matcher m = r.matcher(line);
while (m.find()) {
System.out.println("Found value: " + m.group(1));
}
相关问题
- 1. SympifyError解析多项式
- 2. 解析dalvik指令时如何解析可变长度参数?
- 3. 如何从解析中的指针数组中删除指针?
- 4. 如何解析lambda项
- 5. 正则表达式解析格式错误多项式
- 6. 如何解析多态JSON数组?
- 7. 如何JSON解析多元素数组?
- 8. 正则表达式解析多项式为monom
- 9. 的JLine多参数解析
- 10. 指定字符串中数据的格式以及如何解析它?
- 11. TinyXML:如何解析文件指针
- 12. 如何制作解析指针存档?
- 13. PHP - 正则表达式的多个选项解析
- 14. Antlr4解析jsp scriptlets表达式指令
- 15. 数值求解非多项式方程
- 16. 解析出从大熊猫多指数数据帧
- 17. 如何让Doxygen解析包含__cdecl的函数指针typedefs?
- 18. 如何解析的多级JSON阵列
- 19. 如何解析多语言的句子?
- 20. 如何使用reactjs将数据从子项解析到父项?
- 21. 解析指针(ios)
- 22. 如何解析字符串中的多位数整数
- 23. 如何解析android中的xsd模式
- 24. 如何解析dd.mm.yyyy格式的日期?
- 25. 如何解析此格式的xml
- 26. 项目欧拉#101 - 如何解决numpy多项式溢出?
- 27. 创建具有多个解析的项目的Scrapy数组
- 28. 解析PHP多维数组
- 29. PHP解析多维数组
- 30. 解析XML多参数
这不是一个很好的使用情况'split'。设置一个正则表达式匹配器并在循环中使用'find'。 – ajb
你不会。你会写一个适当的词法分析器。 XY问题。 – EJP
我将如何设置正则表达式匹配器? – lilypad111