第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用正則表達式拆分 java 字符串,然后存儲到堆棧中

使用正則表達式拆分 java 字符串,然后存儲到堆棧中

汪汪一只貓 2022-09-22 10:45:45
我的邏輯中存在一些基于正則表達式拆分字符串的錯誤。目標(biāo)是為 python 語法創(chuàng)建一個分詞器。我寫了四個簡單的正則表達式;數(shù)字、浮點數(shù)、運算符和變量。我想將上面列出的四個正則表達式中的第一組提取到一個字符串中,然后將其推送到我的堆棧中。String s = "123+abc+123abc";String allRegex = String.format("%s|%s|%s|%s", digit, floats, operators, variable);Pattern allRegexPattern = Pattern.compile(allRegex);Matcher matchString = allRegexPattern.matcher(s);int group = 1;while (s != null){    if (group == 5)        group = 1;    if (matchString.find())    {        String temp = matchString.group(group);        if (temp != null)        {            tokens.add(temp);            s = s.replace(temp, "");        }        else            group++;    }}//Expecting ["123","+","abc","+","123abc"] in my stack現(xiàn)在,代碼正在無限運行。
查看完整描述

1 回答

?
叮當(dāng)貓咪

TA貢獻1776條經(jīng)驗 獲得超12個贊

這將可以:


public Stack<String> getStack(String expression){

    Stack<String> stack = new Stack<>();

    Pattern pattern = Pattern.compile("[0-9a-z]+|\\+|\\*");

    Matcher matcher = pattern.matcher(expression);

    while(matcher.find()) {

       stack.push(matcher.group());

    }

    System.out.println(stack.toString());

    return stack;

}


查看完整回答
反對 回復(fù) 2022-09-22
  • 1 回答
  • 0 關(guān)注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號