我是Go编程语言的新手,我正在尝试构建一个非常简单的计算器。我遇到的问题是,如果有人在命令行中输入4+2
或5/10
或100-25
,我如何从该字符串中获取运算符和操作数以执行等式?
这是我到目前为止所做的,但这只是抓住整个字符串
package main
import (
"bufio"
"fmt"
"os"
"stack" //stack code works perfectly
)
func main() {
// Read a line from stdin.
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
line := scanner.Text()
// fmt.Println(line)
//Separate the string based on operator and operands
// Push all of the characters onto the stack.
s := stack.New()
for i := 0; i < len(line); i++ {
if err := s.Push(line[i]); err != nil {
panic("Push failed")
}
}
答案 0 :(得分:0)
为您提供一些指示。
line
尝试strings.FieldsFunc()
。float64
尝试strconv.ParseFloat()
或fmt.Sscanf()
。 +, -, /, *
。也许是strings.ContainsRune()
。