【发布时间】:2021-01-21 19:42:55
【问题描述】:
也许我的问题与消息的内容不匹配,但我希望我能很好地解释我的问题。
我有两种情况
第一种情况:
如果我收到这样的字符串:
x = x + 10;x = x + a [i]; x = x + a [i] +10;
注意:这里的字母可能不同,示例也可能不同。 我将 = 符号之前的一侧与 = 符号之后的一侧分开 所以我得到了 ArrayList,其中的元素如下所示:
- 索引 0 -> x
- 索引 1 -> x + 10
- 索引 2 -> x
- 索引 3 -> a [i]
- 索引 4 -> x
- 索引 5 -> x + a [i] +10
我现在想在句子之间进行比较,所以我将在索引 0 和索引 1 之间以及索引 2 和索引 3 之间进行比较。
让我们将等号之前的一侧(左侧)命名为str1,将等号之后的一侧(右侧)命名为str2
是否有可能在两侧进行比较,如果str1是变量,str2是同一个变量的名称,数组在变量名称之后,如下例:
x = x + a[i] * 10;
我们返回假。但是,如果变量的名称彼此不同,我们将返回 true,如下例所示:
x = y + a[i] + 10;
所以 false 将返回类似于以下内容:
x = x + a[i];
或
x = x + a[i] + 10;
注意:字母可能不同。我的意思是我们可以有这样的东西:
sum = sum + a[i]; and so on.
第二种情况:
注意:字母和数字可以更改。
如果我有如下字符串:
a [i] = b [i] + c [i];
或
a [i] = b [i + 1] * c [i] +10;
我能够以与我之前提到的相同的方式将 = 之前的一侧和 = 之后的一侧分开,它看起来像这样:
- 索引 0 -> a [i]
- 索引 1 -> b [i] + c [i]
- 索引 2 -> a [i]
- 索引 3 -> b [i + 1] * c [i] +10
这里的问题是:
我也可以将左侧彼此分开吗?我的意思是,我希望第一句话是这样的
- 一个 [i] 本身
- b [i] 本身
- c [i] 本身
第二个例子也一样,因为我想这样比较: a [i] 与 b [i]
并比较 a [i] 与 c [i]
我尝试过的:
我使用“;”分割字符串然后我在上面提到的两个方面分开,我使用了 charAT 但我不知道如何找出语句的其余部分,就像在这个例子中一样: x = x + a[i]; 它将返回 1 因为 x = x 但我不知道如何检查字符串的其余部分,以及我如何分隔字符串更像这个例子: a[i] = b[i] + c[i+1];
提前谢谢你
【问题讨论】:
-
您似乎在这里问了几个问题。标题询问比较,但文本似乎更侧重于拆分或解析。请将您的问题缩小到一个问题,并尽可能多地删除对描述您的问题并非绝对必要的内容。
-
感谢您编辑我的问题,并对我试图解释和描述我的问题的问题感到困惑,以便阅读的人能够准确理解我的需求。是的,我主要关心的是比较,但我不能这样做,因为我不知道如何拆分零件以进行适当的比较。
-
当你说:
Index 3 -> a [i],我认为那是一个错字,你是想写Index 3 -> x + a[i]?如果是这样,请编辑,如果不是,嗯,也许对算法进行更多解释:) -
@Hisham 如果是这种情况,请提出单独的问题 - 每个概念/问题一个问题。您可以关闭此问题并提出两个新问题,也可以修改此问题以将其缩小到一个想法并提出另一个单独的问题。
-
@rzwitserloot 是的,你说得对,这是一个错字,应该和你写的一样
标签: java arrays string split comparison