[英]How do I get the last substring starting with +,-,*,/?
如果我在类似20+567-321
的字符串变量中有表达式,那么如何从中提取最后一个数字321
,其中运算符可以为+
, -
, *
, /
如果字符串表达式只是321
,我必须得到321
,这里表达式中没有运算符
您可以通过根据运算符拆分字符串来做到这一点,如下所示:
String[] result = myString.split("[-+*/]");
[+|-|*|/]
是正则表达式,用于指定应从中分割字符串的点。 在这里, result[result.length-1]
是您所需的字符串。
编辑如@ElliotFrisch所建议,我们需要进行转义-
在指定正则表达式时。 因此,以下模式也应该起作用:
String[] result = myString.split("[+|\\-|*|/]");
这是需要转义的字符列表。
这似乎是学习编程和算法的一项工作,而且我怀疑在只需要最后一个子字符串的情况下,使用Regex进行拆分是否有效。
String[] output = s.split("[+-/*]");
String ans = output[output.length-1];
这里假设没有空格,并且字符串仅包含数字和算术运算符。
[+-/*]
是一个仅与我们在方括号内提供的字符匹配的正则表达式。 我们根据这些字符进行拆分。
如果您想使用StringTokenizer做到这一点:
public static void main(String args[])
{
String expression = "20+567-321";
StringTokenizer tokenizer = new StringTokenizer(expression, "+-*/");
int count = tokenizer.countTokens();
if( count > 0){
for(int i=0; i< count; i++){
if(i == count - 1 ){
System.out.println(tokenizer.nextToken());
}else{
tokenizer.nextToken();
}
}
}
}
回想一下,您可以在StringTokenizer中指定多个定界符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.