Pattern pattern = Pattern.compile("([^\\d.]|[\\d.]++)");
String[] equation = pattern.split("5+3--323");
System.out.println(equation.length);
我試圖掰開號碼(可能是基團)和nonnumbers,在這個例子中我希望的是大小爲6數組: 5,+,3, - , - ,323分裂開數學方程式串
我該怎麼做?
Pattern pattern = Pattern.compile("([^\\d.]|[\\d.]++)");
String[] equation = pattern.split("5+3--323");
System.out.println(equation.length);
我試圖掰開號碼(可能是基團)和nonnumbers,在這個例子中我希望的是大小爲6數組: 5,+,3, - , - ,323分裂開數學方程式串
我該怎麼做?
嘗試使用匹配器,如下例所示。它會返回你正在做的事情。
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MathSplitTest
{
public static void main(String[] args)
{
Pattern pattern = Pattern.compile("[0-9]+|[-+]");
String string = "5+3--323";
Matcher matcher = pattern.matcher(string);
while(matcher.find())
System.out.println("g0="+matcher.group(0));
}
}
怎麼樣使用
new java.util.Scanner(new java.io.StringReader("5+3--323"));
呢?
http://download.oracle.com/javase/6/docs/api/java/util/Scanner.html
如果您的號碼用逗號分隔然後第一記號化的字符串;
tok = new StringTokenizer(string, ",");
然後嘗試從每個令牌創建一個數字。如果它不是一個數字那麼它是一個符號:
while (tok.hasMoreTokens()){
String tok = tok.nextTok();
try {
new Integer(tok);
}catch (NumberFormatException e){
}
}
如果托克不是數字則拋出NumberFormatException。
你不想*解析*數學*表達式*? – Rekin 2011-06-07 18:44:45