【问题标题】:Compare a character in a string with a letter?将字符串中的字符与字母进行比较?
【发布时间】:2016-12-09 17:46:53
【问题描述】:

我想将字符串中的一个字符与字母“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,然后以翻转顺序添加给定的字符串,并用L替换(在添加的字符串中)每个R并且每个 L 都带有 R。

【问题讨论】:

    标签: java replace char compare


    【解决方案1】:

    首先,你必须小心你的类型。 s.charAt(i) 返回一个 char 类型(考虑到方法的名称,这并不奇怪),但是您将它与 String "R" 进行比较。那不会编译,即使编译了,它也不会工作; chars 和 String 是不同的野兽,永远不会相等。

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

    这段代码是我认为你要绑定的代码:

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

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

    【讨论】:

    • 感谢您的回答。我以前没有使用过java,所以我是一个真正的初学者。 s.charAt(i) 是字符而不是字符串的问题听起来合乎逻辑;)我不知道为什么我以前没有考虑过这个问题 :) 虽然我试图解决这个问题,但我发现了一个使程序工作的其他方法。我已经将 s.charAt(i) 与 (char)85 进行了比较(85 是“R”的 Ascii 数)。它也可以工作,现在程序修改了原始字符串。
    • @dino1995 没问题。 (char)85'R' 效果相同,但我们都知道哪个更容易阅读。
    • 好的,我想我现在已经明白“R”和“R”之间的区别了 :) 谢谢 :)
    猜你喜欢
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多