我有一个赋值,用于创建一个方法,用于检查以某个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;
}
}
答案 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
您的代码问题在于您调用了您的班级String
。 String
已经是JDK中的一个带有charAt(...)的方法。
你的类String没有实现该方法,因此会出现编译错误。
更改班级名称做其他事情,例如StringUtils
。
这正是没人注意到这个问题的原因:
这就是每个问题都应该发布格式正确的完整代码的原因。