【问题标题】:In TI-BASIC, how do I add a variable in the middle of a String?在 TI-BASIC 中,如何在字符串中间添加变量?
【发布时间】:2016-02-26 07:24:57
【问题描述】:

我想知道如何在 X=5 和 Y=2 的情况下制作一些东西,然后让它输出类似的东西 Hello 2 World 5.

在 Java 中我会这样做 String a = "Hello " + Y + " World " + X; System.out.println(a);

那么我将如何在 TI-BASIC 中做到这一点?

【问题讨论】:

  • 我试过 Text("Hello "X" World "Y), Text("Hello "+X+" World "+Y), Output(3,2"Hello "X" World "Y ), Output(3,2"Hello "+X+" World "+Y), Disp "Hello "X" World "Y, Disp "Hello "+X+" World "+Y,这些都没有用。跨度>

标签: ti-basic


【解决方案1】:

您有两个问题需要解决,连接字符串和将整数转换为字符串表示形式。

字符串连接非常简单,使用+ 运算符。在您的示例中: “你好”+“世界” 将产生字符串“Hello World”。

在 TI-BASIC 中将数字转换为字符串并不容易,但可以使用与 TI-83+/84+ 系列兼容的方法here。以下代码及解释引自链接页面:

:"?
:For(X,1,1+log(N
:sub("0123456789",ipart(10fpart(N10^(-X)))+1,1)+Ans
:End
:sub(Ans,1,length(Ans)-1?Str1

将我们的数字存储在 N 中,我们循环遍历 N 的每个数字并存储 我们字符串中匹配位置的数字字符 在我们的子字符串中。您可以通过以下方式访问号码中的单个数字 使用 iPart(10fPart(A/10^(X, 然后找到它在字符串中的位置 “0123456789”。您需要添加 1 的原因是它可以与 0 位。

为了构造一个包含所有数字的字符串,我们首先创建一个虚拟字符串。这就是使用“? 为了。每次通过 For( 循环,我们将字符串从 之前(仍然存储在 Ans 变量中)到下一个数字 在 N 中找到的字符。使用 Ans 可以让我们不必使用 另一个字符串变量,因为 Ans 可以像字符串一样工作并且它得到 相应地更新,并且 Ans 也比字符串变量快。

当我们完成 For( 循环时,我们所有的数字字符都放在 Ans 中。但是,因为我们存储了一个 dummy 字符到字符串,我们现在需要删除它,我们 通过获取从第一个字符到第二个字符的子字符串来完成 字符串的最后一个字符。最后,我们将字符串存储到更多 供将来使用的永久变量(在本例中为 Str1)。

转换为字符串后,您可以简单地使用+ 运算符将字符串文字与转换后的数字字符串连接起来。

您还应该查看a similar Stack Overflow question,它解决了类似的问题。

【讨论】:

  • 或者,您可以使用length( 计算字符串中的字母数,然后使用Output( 命令将其定位到“Hello”旁边的位置。在我看来要容易得多,而且速度也更快。
【解决方案2】:

如果您知道“Hello”和“World”的长度,那么您可以简单地使用Output(),因为 Disp 在每个语句之后都会创建一个新行。

【讨论】:

    【解决方案3】:

    对于这个问题,您可以使用 5.2.0 版本中引入的 toString( 函数。该函数将数字转换为字符串,您可以使用它轻松地将数字和字符串一起显示。它最终会像这样:

    Disp "Hello "+toString(Y)+" World "+toString(X)
    

    【讨论】:

      猜你喜欢
      • 2014-12-11
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-08
      • 1970-01-01
      • 2016-05-29
      • 2012-02-23
      相关资源
      最近更新 更多