[問題] 字串轉運算

看板java作者 (阿輝)時間13年前 (2010/11/20 14:00), 編輯推噓1(1016)
留言17則, 6人參與, 最新討論串1/1
當使用者在文字欄輸入 5*6+1 如何把它變成一個運算得到答案 問題二 有辦法再多一個變數x之類的嘛 對話框一:輸入x的值x= 5 對話框二:x*6+1 然後得到正確答案?? -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.170.131.46

11/20 14:03, , 1F
板規4.1
11/20 14:03, 1F
補充一些資料 使用軟體:Ejs http://goo.gl/ehZ05 定義兩個變數 double z = 5; string T ="16*z+11*8"; //(想做成使用者輸入) 做法 先搜尋出+ - * / 這些特殊字串 及 未知變數 z 的位置 利用這些位置去分斷這些字串 變成: str[n] = ("16","*","z","+","11","*","8"); 迴圈判斷未知數z for (i=0;i<n;i++){ if(str[i]=="z") str[i] = z; } 迴圈判斷*/ for (i=0;i<n;i++){ if(str[i]=="*") str[i] = str[i-1]*str[i+1]; //須移除掉str[i-1] str[i+1] if(str[i]=="/") str[i] = str[i-1]/str[i+1]; } 再做個迴圈按照順序+- 這樣一來感覺十分龐大 還要考慮()、sin、^等等 但是如果在程式內部直接寫 double z = 5; double y = 6*z+11*8; 馬上有答案 所以才想問看看能不能把字串直接轉成運算 也查過了 double : Double.parseDouble(String s) : 將 s 轉換成 double float : Double.parseFloat(String s) : 將 s 轉換成 float int : Integer.parseInt(String s) : 將 s 轉換成 int long : Long.parseLong(String s) : 將 s 轉換成 long 但上面s的形態大概只能 s = "123"; s = "1.23"; 這樣子 ※ 編輯: driftseed 來自: 1.170.131.46 (11/20 16:24)

11/20 15:56, , 2F
1. char, stack, while, switch
11/20 15:56, 2F

11/20 15:56, , 3F
2. 可以
11/20 15:56, 3F

11/20 15:59, , 4F
感謝樓上 james732 幫忙, 不過再沒有求程式碼的情況..
11/20 15:59, 4F

11/20 15:59, , 5F
我覺得是還可以不用引用 4.1
11/20 15:59, 5F

11/20 16:31, , 6F
ogame版主 所以只能跑迴圈 慢慢處理這問題嗎
11/20 16:31, 6F

11/20 17:53, , 7F
如果你覺得這很龐大的話, 建議你可以去找一下JDK的
11/20 17:53, 7F

11/20 17:53, , 8F
source來看一下裡面是怎麼處理那些讓你平常可以很方便
11/20 17:53, 8F

11/20 17:54, , 9F
就迅速使用的方法.
11/20 17:54, 9F

11/20 17:56, , 10F
而且這種基礎的問題,其實是訓練你的拆解分析問題的能
11/20 17:56, 10F

11/20 17:57, , 11F
力 (先不論實作部分), 如果你覺得這種程度的問題已經
11/20 17:57, 11F

11/20 17:57, , 12F
很複雜, 那你可能要多拿一些問題來訓練自己的思考
11/20 17:57, 12F

11/20 17:58, , 13F
此外, 覺得現有的方法很難用, 也有可能是嶄新方法的開
11/20 17:58, 13F

11/20 17:59, , 14F
端...
11/20 17:59, 14F

11/21 00:13, , 15F
這其實是一個expression,所以你需要有grammer/parser
11/21 00:13, 15F

11/22 13:43, , 16F
放大絕...XD call javascript 的 eval 來產結果XD
11/22 13:43, 16F
THANHS~ 因為這是自己平常閒來沒事亂做來玩的,所以最後我改用javascript做了... http://www.mediafire.com/?c4h9h2l44ivv2j5 *.html檔 功能:解方程式 但又產生問題了...javascript在小數運算不是很好... 只能產生近似解~ (我沒有想問javascript的事,只是報告一下進度)

11/22 15:06, , 17F
我怎麼想到什麼preorder,postorder的東西...
11/22 15:06, 17F
※ 編輯: driftseed 來自: 1.170.128.11 (11/25 13:02)
文章代碼(AID): #1CvsFnnA (java)