繁体   English   中英

我的代码出现错误:不兼容的类型:int无法转换为布尔线:6

I'm getting an error for my code: incompatible types: int cannot be converted to boolean line:6

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

public int countHi(String str) 
{
  int hiCount = 0;
  for (int i=0; i < str.length()-1; i++)
 {
   if (str.indexOf("hi"))
   {
     hiCount++;
     i++;
   }
 }
return hi;
} 

一直在尝试为完成分配的代码,但我一直不断得到错误(标题)。 我不是最聪明的人,有人可以帮我吗? 我正在尝试获取代码以返回“ hi”在代码内的次数。

2 个回复

String.indexOf返回int :在其中找到参数的索引;如果未找到则返回-1 它不会返回您期望的boolean值。

要检查是否找到"hi" ,而不是编写:

if (str.indexOf("hi"))

您应该写:

if (str.indexOf("hi") != -1)

首先,对于for循环,为了循环整个字符串,它应该是:

for (int i=0; i < str.length(); i++)

而不是str.length-1. If the str.length == 6 str.length-1. If the str.length == 6 ,则它将在0到5之间循环,直到i < str.length

其次,它需要首先检查str.indexOf("hi") != -1以便检查什么是包含“ hi”的起始索引。 然后,随后对该字符串的其余部分做一个子字符串,并继续检查它是否包含“ hi”。

因此,您的代码应更像:

public int countHi(String str)
{
  int hiCount = 0;
  int index = str.indexOf("hi");
  for (int i=0; i < str.length(); i++)
  {
    while(index != -1)
    {
      hiCount++;
      str = str.substring(index+1);
      index = str.indexOf("hi");
    }
  }
  return hiCount;
}
1 错误:类型不兼容:int [] []无法转换为int

如您在下面的代码中看到的,我试图添加两个(二维整数数组),我知道第一个方法中的变量(c)是对数组的引用,为什么我不能返回该数组或它的引用,我可以一般返回二维数组吗? ...

4 错误:不兼容的类型:消息无法转换为 int?

我一直在尝试为Android app制作splashscreen ,并且我已经使用了本教程。 一切都应该没问题,除了Android Studio给我一条错误消息说 消息无法转换为 int。 我正在为 msg.what 分配一个int值,但这应该可以工作,所以我不确定为什么它会给我这个错误。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM