Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找字符串中第一个非';指定字符_Java_If Statement_Methods_Char_Indexof - Fatal编程技术网

Java 查找字符串中第一个非';指定字符

Java 查找字符串中第一个非';指定字符,java,if-statement,methods,char,indexof,Java,If Statement,Methods,Char,Indexof,我无法理解这件事。学习一门基础课程,这项任务是关于在字符串中查找一个字符的索引,该字符串不是几个预先指定的字符之一 教科书上说代码应该是: public static int sokForstaIckeBland (String s, String tecken, int start) { for (int i=start; i<s.length(); i++) if (tecken.indexOf(s.charAt(i)) == -1) return i; return -1

我无法理解这件事。学习一门基础课程,这项任务是关于在字符串中查找一个字符的索引,该字符串不是几个预先指定的字符之一

教科书上说代码应该是:

public static int sokForstaIckeBland (String s, String tecken, int start) {
for (int i=start; i<s.length(); i++)
  if (tecken.indexOf(s.charAt(i)) == -1)
    return i;
return -1;
}
公共静态int-sokForstaIckeBland(字符串s、字符串tecken、int-start){

对于(int i=start;i来分解if语句:

  • index(s.charAt(i))将返回一个整数
  • 整数将大于或等于-1
  • 只要tecken.indexOf(s.charAt(i))返回-1,该方法就会返回i
  • i是s的索引,如果字符串中没有字符,则为tecken
因此,这个方法检查s中从s.charAt(start)开始的每个字符(因为i被初始化为start)。该方法将s.charAt(i)与tecken中的每个字符进行比较。如果s.charAt(i)在tecken中,则tecken.indexOf(s.charAt(i))返回s.charAt(i)的索引,它出现在tecken中。如果s.charAt(i)不在tecken中,tecken.indexOf(s.charAt(i))返回-1。 这就是为什么我们将其与-1进行比较

  if (tecken.indexOf(s.charAt(i)) == -1)
    return i;
这里您正在检查
i
处的字符
s.charAt(i)
是否存在于字符串
tecken
中,因此您可以通过
tecken.indexOf(s.charAt(i))
tecken
字符串中查找其索引

indexOf
如果在字符串中找不到元素,则返回
-1
。因此,如果在字符串中找不到元素,则函数将返回该索引,因为是第一个 字符串
tecken
中不存在的字符,这正是您想要的

在这一行

return -1;
如果它没有找到任何字符,那么它将简单地返回
-1
,表明没有任何索引与条件匹配


对于字符串
s=“28723709dh23ha”
和字符串
tecken=“0123456789”
它将返回
8
,这是字符串
s=“28723709dh23ha”中字符
d
的索引

这是一种表示您没有找到任何内容的方法。返回
-1
意味着您传递给
索引的字符在
字符串中根本找不到。
返回-1
if
之外,甚至在
for
之外,因此只有循环通过时才会执行没有找到合适字符的字符串为什么你不问问班主任或助教,而不是这个网站上的随机陌生人?老师的工作是教学,所以如果你有问题,就去问他/她。我理解-1表示我没有找到任何东西,但对我来说,似乎两个返回语句返回相同的东西。我添加了some以上文字中的更多信息。@stackoverflowuser2010这是一个有用的评论,谢谢!仅供参考,这是一本我正在学习的书,没有老师的正式课程。