Parsing 如何解析输入字符串(如计算器)以获取运算符和操作数?
我是Go编程语言的新手,我正在尝试构建一个非常简单的计算器。我遇到的问题是,如果有人在命令行中输入Parsing 如何解析输入字符串(如计算器)以获取运算符和操作数?,parsing,go,Parsing,Go,我是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 :
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")
}
}
主程序包
进口(
“布菲奥”
“fmt”
“操作系统”
“stack”//stack代码工作正常
)
func main(){
//从stdin读一行。
扫描仪:=bufio.NewScanner(os.Stdin)
对于scanner.Scan(){
行:=scanner.Text()
//fmt.Println(行)
//根据运算符和操作数分隔字符串
//将所有字符推送到堆栈上。
s:=stack.New()
对于i:=0;i
给你一些建议
行中获取操作数,请尝试strings.FieldsFunc()
float64
尝试strconv.ParseFloat()
或fmt.Sscanf()
+,-,/,*
。可能使用字符串。ContainsRune()
请提供尽可能多的可编译代码。使用以确保一切正常。您是否尝试过实际解析所获取的字符串?目前,这个问题基本上要求完整的实现。这可能会对您有所帮助:。这不是一个实现,但它具有逻辑。