2016-12-09 36 views
0

我想比较字符串中的字符与字母“R”。所以我想检查字符串中位置i上的字符是“R”,“L”还是“F”。用字母比较字符串中的字符?

这是我的代码,但它没有字... 我是一名Java初学者,对于改进我的代码并使其工作的每个想法都非常满意。

 for (int i = s.length()-2; i >= 0; i--){ 
      if (s.charAt(i) == "R"){ 
        s = s + "L";} 
      else if (s.charAt(i) == L){ 
        s = s + "R";} 
      else {s = s + "F";} 

// s = s + s.charAt(i); } //对于

顺便说一下,完整的练习是获取一个随机字符串(例如RFFLF),添加一个R,然后添加给定的字符串在转身顺序和替换(在添加字符串)每R与L和每个L与R.

回答

0

首先,你必须小心你的类型。 s.charAt(i)返回一个char类型(给出方法名称并不令人意外),但您将其与String"R"进行比较。这不会编译,即使它做到了,也不会起作用。字符和字符串是不同的野兽,并不是平等的。

char文字由分隔单引号,如'R'

这段代码是什么,我认为你绑代码:

String result = ""; 
if (s.charAt(i) == 'R') { 
    result = result + "L"; // you could code + 'L' too - both will work 
} 

请注意,您在尝试修改原始字符串不会工作。根据我的代码使用新的字符串。更容易理解和正确。

+0

谢谢你的回答。我以前没有用过java,所以我是一个真正的初学者。 s.charAt(i)是一个字符而不是字符串的问题听起来很合逻辑;)我不知道为什么我没有想过这个:)虽然我试图解决这个问题,我发现了其他方式使程序正常工作。我比较了s.charAt(i)和(char)85(85是Ascii数字“R”)。它也可以工作,现在程序修改了原始字符串。 – dino1995

+0

@ dino1995没问题。 '(char)85'与'R''实际上是相同的,但我们都知道哪一个更容易阅读。 – Bohemian

+0

好吧,我想我现在明白了“R”和“R”之间的区别:)谢谢:) – dino1995