【发布时间】:2014-01-04 02:33:08
【问题描述】:
我正在制作一个程序,当输入是非结构化的时,它会给你一个求和的结果。请参阅以下内容:
输入:
whats 20 + 26
输出:
46
我已经知道如何在字符串中搜索文本 (If text.IndexOf("hello") >= 0 Then)...
我不知道如何将这两个整数用于加法方程。
【问题讨论】:
-
使用非结构化数据输入流程的目的是什么?即:为什么需要解析输入而不是请求的值 1、值 2、值 n 会增加复杂性?
-
这其实是一个比较难的问题。这不是一个具体的编程问题,而是一个广泛的编程问题。要解决这个问题,您需要应用一套非常广泛的编程工具,尤其是在您对输入字符串的格式没有限制的情况下。很明显,您甚至还没有考虑过将其组合在一起所需的所有子问题。如果用户键入
what is 20 + 26或I have 20 apples and 26 fingers或whatever you do, don't tell me the sum of 20 + 26或What are 26.9+7 things % 133t k0derz can d0? -
简而言之,考虑您所问问题的复杂性,并尝试将问题分解为更简单的子集。就目前而言,这个问题是在问如何编写自然语言解析器——这不是一个小问题。如果你只是学习如何编程,我建议你先从基础开始。
-
您可能想开始研究正则表达式 - 这样的问题可能会有所帮助:stackoverflow.com/q/3373885/327083 请注意,正则表达式只会为这个问题提供有限且特定类型的解决方案,但它是至少是一个开始。
-
只需对您的
textbox添加限制 - 就像不允许使用字母一样。这将简化你的作业:) 另外,什么样的人会输入“20+20”而不是“20+20”clicks button