Java是一種非常流行的編程語言,常用于開發(fā)各種應(yīng)用程序。在編寫Java程序的過程中,我們有時(shí)需要對(duì)表達(dá)式進(jìn)行分離,以便更好地進(jìn)行計(jì)算和處理。其中,分離數(shù)字和運(yùn)算符是一個(gè)非常基本的技術(shù),下面就來介紹一下Java里如何實(shí)現(xiàn)。
/** * 分離數(shù)字和運(yùn)算符 * @param expression 表達(dá)式 * @return List數(shù)字和運(yùn)算符組成的列表 */ public static List separate(String expression) { List list = new ArrayList<>(); StringBuilder sb = new StringBuilder(); for (int i = 0; i< expression.length(); i++) { char c = expression.charAt(i); if (Character.isDigit(c)) { // 如果是數(shù)字,拼接到字符串中 sb.append(c); } else { // 如果是運(yùn)算符,加入列表 if (sb.length() >0) { // 如果之前有拼接的數(shù)字,先加入列表 list.add(sb.toString()); sb = new StringBuilder(); // 清空字符串 } list.add(String.valueOf(c)); // 加入運(yùn)算符 } } if (sb.length() >0) { // 處理最后一個(gè)數(shù)字 list.add(sb.toString()); } return list; }
上述代碼定義了一個(gè)名為separate的方法,其輸入?yún)?shù)為一個(gè)表達(dá)式的字符串,返回值為一個(gè)由數(shù)字和運(yùn)算符組成的列表。其處理過程簡(jiǎn)單明了,它遍歷給定的表達(dá)式字符串中的每一個(gè)字符,如果是數(shù)字,則將其拼接到一個(gè)StringBuilder對(duì)象中,直到下一個(gè)字符是運(yùn)算符時(shí),將之前拼接的數(shù)字加入列表,同時(shí)清空StringBuilder對(duì)象;如果是運(yùn)算符,則將其加入列表。最后,如果有最后一個(gè)數(shù)字,也將其加入列表。
使用這個(gè)方法可以將一個(gè)表達(dá)式分離成數(shù)字和運(yùn)算符兩個(gè)部分,我們可以繼續(xù)進(jìn)行進(jìn)一步的處理,比如,計(jì)算表達(dá)式的值。