字符串上的CharAt()方法表示"缺少符号..."

时间:2018-05-06 00:03:46

标签: java string loops compiler-errors static-methods

我有一个赋值,用于创建一个方法,用于检查以某个char开头和结尾的String的所有子字符串。 我在字符串上使用了chatAt(),但由于某种原因它给出了错误(找不到符号charAt(int)),即使我在String上运行它。 以及.length方法的错误(找不到符号 - 可变长度)。 我不明白为什么会发生这种错误。 有人可以解释一下吗?我在其他问题中发现的所有方法都不是在String上运行,我做了。

这是代码:

public static int subStrC (String s, char c)
{
 int count = 0;
 for (int i=0; i<s.length ; i++)
    if (s.charAt(i).equals(c))
        for (int j=i+1; j<s.length; j++)
            if (s.charAt(j).equals(s.charAt(i))){
                count++;
                i=j;
            }
}

编辑: 我尝试了一些我在这里得到的答案,错误仍然是一样的。现在这里是代码:

public static int subStrC (String s, char c)
{
 int count = 0;

 for (int i = 0; i < s.length(); i++)
    if (s.charAt(i) == c)
        for (int j=i+1 ; j < s.length(); j++)
            if (s.charAt(j) == c ){
                count++;
                i=j;
            }

  }

编辑2: 我尝试了我在这里被告知的一切无济于事。 错误仍然存​​在。 这是完整的课程:

public class String
{

public static int subStrC (String s, char c)
{
  int count =0;
 for (int i = 0; i < s.length(); i++)
 {
    if (s.charAt(i) == c)
    {
        for (int j=i+1 ; j < s.length(); j++)
        {
            if (s.charAt(j) == c ){
            count++;
            i=j;
            }
        }
    }
}
 return count;
}
}

2 个答案:

答案 0 :(得分:0)

首先,要获得你所做的字符串的长度:s.length() 接下来,您没有返回语句,因此您总是会收到错误。您应该在方法结束时返回计数,因为我相信您正在使用它来跟踪字符串中以字符开头的子字符串数。您还应检查J是否为C而不是J是否为I:if(s.chatAt(j) == c) if语句还提出了另一点,因为字符是原始数据,您应该使用==而不是.equals对象。您的方法中也缺少括号,但我已经开始创建此方法的工作版本,但有一部分已经破坏,您必须修复。这是一个简单的修复方法,一旦完成,您将拥有所需的功能:

 int count = 0;
 for (int i=0; i<s.length() ; i++){
    if (s.charAt(i) == c){
        for (int j=i+1; j<s.length(); j--){
            if (s.charAt(j) == c){
                count++;
                i=j;
            }
        }
    }
}

答案 1 :(得分:0)

public class String

您的代码问题在于您调用了您的班级StringString已经是JDK中的一个带有charAt(...)的方法。

你的类String没有实现该方法,因此会出现编译错误。

更改班级名称做其他事情,例如StringUtils

这正是没人注意到这个问题的原因:

  1. 在您的第一个代码发布中,您没有提供类名,只有方法
  2. 在第二次编辑中,您提供了类名,但它与其余代码分开,因此人们错过了连接。
  3. 这就是每个问题都应该发布格式正确的完整代码的原因。