gpt4 book ai didi

Java 匹配器在输出中返回额外的 "."

转载 作者:行者123 更新时间:2023-11-29 03:11:56 26 4
gpt4 key购买 nike

这是我的项目java程序的一部分。

String ops="";
String input="1+3-4+(7/8)+cos(sin(50)+2)/2+tan(90)*e^(5+26-4/1*2)";
input=input.replaceAll("cos", "c").replaceAll("sin", "s").replaceAll("tan", "t").replace("e", "2.718");
//System.out.println(input);
Pattern pattern=Pattern.compile("[+-/*()cst^]");
Matcher matcher= pattern.matcher(input);
while (matcher.find()) {ops+=matcher.group();}
System.out.println(ops);

这里我只是读取输入并给出 +,-,/,*,(,),c,s & t 的输出。输出 ops应该返回 +-+(/)+c(s()+)/+t()*^(+-/*)当它返回时 +-+(/)+c(s()+)/+t()*.^(+-/*) .请帮助我理解原因。

最佳答案

- 用于范围,因此 +-/ 包括 +/ 之间的所有字符(在 ascii 表中),即 ,-./。要解决此问题,您可以将 - 放在第一个位置:

Pattern.compile("[-+/*()cst^]");

或者你也可以逃避它。更多相关信息:How to match hyphens with Regular Expression?

关于Java 匹配器在输出中返回额外的 ".",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28859883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com