我有以下代碼:String generalRequest = "4+6*12/3";String[] operatorsLine = generalRequest.split("[0-9]+");結果,我有剩余的空值operatorsLine:“”、“+”、“*”、“/”然而我渴望一個結果:“+”、“*”、“/”如何""使用方法跳過將值添加到數組中String.split()?
3 回答

小怪獸愛吃肉
TA貢獻1852條經驗 獲得超1個贊
你可以使用類似的東西:
String[] operatorsLine = Arrays.stream(generalRequest.split("[0-9]+")) .filter(s -> !s.isEmpty()) .toArray(String[]::new);

阿波羅的戰車
TA貢獻1862條經驗 獲得超6個贊
如何為split(String regex, int limit)方法提供第二個參數并使用 2 個輸出字段限制它并再次拆分它:
String generalRequest = "4+6*12/3";
String[] operatorsLine = (generalRequest.split("\\d+", 2)[1]).split("\\d+");
第一次拆分將輸出一個數組:["", "+6*12/3"],然后獲取第一個索引并使用相同的正則表達式再次拆分它。
的最終operatorsLine值為[+,*,/]

慕田峪9158850
TA貢獻1794條經驗 獲得超8個贊
在這種情況下,您只需要單字符運算符,
從字符串中刪除所有數字并使用空字符串作為分隔符進行分割即可:
String generalRequest = "4+6*12/3";
String[] operatorsLine = generalRequest.replaceAll("\\d", "").split("");
System.out.println(Arrays.toString(operatorsLine));
這打?。?/p>
[+, *, /]
添加回答
舉報
0/150
提交
取消