2017-09-27 100 views
0

我已经编写了一个迭代遍历大字符串的for循环,其目标是查看我的字符串是否具有像$或$$这样的字符。 这是if语句,我必须在我的for循环:如何将一个或两个字符与另一个字符或两个字符进行比较

if (stringName.charAt(i) == "$" || stringName.charAt(i) == "$$") 

当我编译我的代码,我得到一个错误说“无法比拟的类型:字符和字符串”,这是自我解释。 现在我的问题是,解决它的最好方法是什么?除charAt()以外,可以使用什么方法比较两个字符字符串“$$”?

+2

为什么你需要迭代?为什么不检查'stringName.contains(“$”)'? – shmosel

+1

然后请解释实际问题,以便我们可以讨论一个实际的解决方案。 – shmosel

+0

是不是只是检查“$”'?请注意,您需要单引号('char')而不是双引号('String') – Bohemian

回答

0

您应该改用String.substring()。你可以这样重写你的代码:

if (stringName.charAt(i) == '$' || stringName.substring(i, i + 2).equals("$$")) 
+0

完美,谢谢! – Beatrice

0

单个字符不能与两个比较。除了语法上的问题,很难想象。 单引号为char类型和String选择(他的API由substring()和比较(按equals()

if (stringName.charAt(i) == '$' || stringName.substring(i,i+2).equals("$$")) 

编辑 同意,第二个条件是多余的与第一:

你的代码在两个地方改变,让我们明白问题

if (stringName.charAt(i) == 'A' || stringName.substring(i,i+2).equals("BB")) 

感谢评论

+1

方法名称是'substring()'。 'endIndex'是唯一的。这两个条件是多余的。 – shmosel

+0

'endIndex'不包含在内。你需要'i + 2' – AJNeufeld

+0

感谢您的评论,更改 –

相关问题