首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么当我检查一个循环中的字符串是否包含在字符串数组中时,我得到的结果都是false?

当你检查一个循环中的字符串是否包含在字符串数组中时,得到的结果都是false的可能原因有以下几点:

  1. 字符串比较时大小写敏感:在比较字符串时,需要注意大小写敏感的问题。如果字符串数组中的元素与待检查的字符串在大小写上有差异,那么比较的结果就会是false。解决方法是在比较之前,将字符串统一转换为相同的大小写形式,例如全部转换为小写字母。
  2. 字符串比较时存在空格或其他不可见字符:字符串比较时,可能存在空格或其他不可见字符的问题。这些字符可能会导致比较结果为false。解决方法是在比较之前,对字符串进行去除空格或其他不可见字符的处理。
  3. 循环或字符串数组的数据存在问题:检查循环中的字符串是否包含在字符串数组中时,需要确保循环和字符串数组的数据是正确的。可能存在循环索引错误、字符串数组为空或未初始化等问题,导致比较结果为false。解决方法是检查循环和字符串数组的数据是否正确,并进行必要的修正。
  4. 字符串比较方法不正确:在比较字符串是否相等时,需要使用正确的比较方法。常见的比较方法有"=="、"equals()"等。如果使用了错误的比较方法,比较结果就会是false。解决方法是使用适当的字符串比较方法进行比较。

综上所述,当你检查一个循环中的字符串是否包含在字符串数组中时,得到的结果都是false可能是由于大小写敏感、存在空格或其他不可见字符、循环或字符串数组的数据问题,或者使用了错误的字符串比较方法等原因导致的。需要仔细检查代码逻辑、数据准确性,并使用正确的比较方法进行字符串比较。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JAVA语言程序设计(一)04747

大家好,又见面了,我是你们的朋友全栈君。 indows常用快捷键和常见命令 省略100万行 二进制=>0、1 一个字节是八位。...**列如:‘1’、‘中’、‘b’ 布尔常量:ture or false 空常量:null。...当我们需要这个功能的时候,就可以去调用,这样既实现了代码的复用性,也解决了代码复杂性 怎样定义一个方法呢? 命名规则:小驼峰 ,第一个小写,后面大写。...教程失败 流程: 创建项目=>取名字并且选中jdk=>生成src文件=>在src文件中创建包=>然后再建立类 方法的回顾 这边还是选用一般的方式去执行,高度集成化的方式将在具体开发中重新学习 定义方法...并且向其中赋予一个默认值 左侧的数据类型,也就是数组当中保存的数据,全都是统一的什么类型 左侧的中括号,代表我是一个数组 左侧的数组名称,给数组取一个名字 右侧的new代表创建数组的动作 右侧的数据类型

5.1K20

50道JavaScript详解面试题,你需要了解一下

4、Line1和Line2的控制台输出是什么? 在Line1中,我们有两个相互比较的对象,并且它们都是唯一的,因此它将在控制台上记录为False。...在Line2中,我们使用===运算符来检查两个字符串基元而不是字符串对象,因此我们得到True。 5、控制台输出是什么,为什么? 与之前的问题类似,我们比较了两个唯一的对象。...在JavaScript中,我们处理的大多数事物都是对象,类似地,数组只是JavaScript中的特殊对象,它们具有其他对象所没有的属性。 7、以下函数的返回类型是什么?...&是按位运算符,当我们比较11和3时,它将与1011和0011的二进制相同。结果,只有都为1的位保持为1,返回的输出为0011,它是3的二进制表示形式, 因此3记录在控制台上。 14、Object。...但是,可以在JavaScript中通过在未将所有可能的参数都传递给函数时返回不同的输出来执行重载。 29、return语句在数组的forEach循环中做什么?

3.5K40
  • JavaScript 进阶问题列表

    虽然它看着像是一个 number,但它实际上并不是一个真实的 number:它有一堆额外的功能并且它是一个对象。 当我们使用 == 操作符时,它只会检查两者是否拥有相同的值。...设定了 进制 后 (也就是第二个参数,指定需要解析的数字是什么进制: 十进制、十六机制、八进制、二进制等等……),parseInt 检查字符串中的字符是否合法....在这个例子中,所有的映射都是number类型,所以if中的判断typeof num === "number"结果都是true.map函数创建了新数组并且将函数的返回值插入数组。 但是,没有任何值返回。...当函数没有返回任何值时,即默认返回undefined.对数组中的每一个元素来说,函数块都得到了这个返回值,所以结果中每一个元素都是undefined. ---- 51. 输出的是什么?...替代者(replacer)可以是个函数或数组,用以控制哪些值如何被转换为字符串。 如果替代者(replacer)是个 数组 ,那么就只有包含在数组中的属性将会被转化为字符串。

    1.3K10

    Lua: 好的, 坏的, 和坑爹的

    虽然我已经见过很多提到Lua的好和坏的列表 (例如, Lua的优势, 为什么使用Lua, 为什么Lua没有得到广泛地应用, Lua的优点,Lua的好和坏, Lua对比JavaScript, 还有Lua的陷阱...与众不同的 表和字符串索引从1而不是0开始. 对一个表中的值赋 nil 会从表中删除它....字符串和数字会自动转换 (需要一个数字时提供一个字符串, 反之亦然), 除了相等比较: 0 == "0" 为false, {} ~= 1 为 true, 还有foo["0"] 和foo[0] 引用的是表中不同的值...尽管对于这个我并没有很强的需求, 但是每当我需要获取/设置一个环境变量时总会直观想到去访问 getenv 和setenv [6/1/2012更新] miko 在评论中提到, 有 os.getenv,...我在使用 luasocket和协程进行异步编辑时多次遇到过这个错误, 最后使用 copas 模块解决. 在Lua 5.2中这个问题得到解决.

    2K10

    LeetCode刷题记录(easy难度1-20题)

    和它的下标放置一个字典中,在循环这个列表,用目标结果target减正在循环的这个数,并判断结果是否在字典中(即是否循已经遍历过),如果结果存在如字典中,即找到相加等于结果的两个值,如果不存在,即把值和对应下标存入字典中...这里也一样,我们首先假设最长共同前缀为最短字符串的前1个字符,在内循环中判断每个字符的前i+1个子字符串是否等于假设的最长共同前缀,如果不相同,我们还需要判断当前i+1是否等于1,如果等于,那就是第一个字符都不相同...循环字符串时,如果当前字符为左字符串,则向栈(列表/数组)尾部加上这个字符,如果不等于左括号,则判断此时栈是否为空或者当前的右括号字符在字典中所对应的左括号是否等于出栈的元素,如果不相等,则返回false...我们可以假设新列表的长度为0,然后我们就能同时得到列表中第一个元素的值,在循环中我们可以用下一个与之比较,如果不一样,就将假设的新列表的长度+1,同时,由于有元素不一样,我们需要将新元素赋给之前相同的元素...,一个值,首先需要判断值是否在数组中,如果存在,即返回该值在数组中的索引值,如果不存在,就需要返回这个值应该在的地方。

    1.3K40

    送你43道JavaScript面试题

    由于第一个循环中的变量i是使用var关键字声明的,因此该值是全局的。在循环期间,我们每次使用一元运算符++都会将i的值增加1。因此在第一个例子中,当调用setTimeout函数时,i已经被赋值为3。...虽然它看起来像一个数字,但它并不是一个真正的数字:它有一堆额外的功能,是一个对象。 当我们使用==运算符时,它只检查它是否具有相同的值。他们都有3的值,所以它返回true。...,则第一个参数的值始终是字符串值的数组。...JavaScript检查对象是否具有对内存中相同位置的引用。 我们作为参数传递的对象和我们用于检查相等性的对象在内存中位于不同位置,所以它们的引用是不同的。...These actually have the value of undefined, but you will see something like: 当你为数组中的元素设置一个超过数组长度的值时,JavaScript

    1.5K10

    43道JavaScript面试题

    虽然它看起来像一个数字,但它并不是一个真正的数字:它有一堆额外的功能,是一个对象。 当我们使用==运算符时,它只检查它是否具有相同的值。 他们都有3的值,所以它返回true。...,则第一个参数的值始终是字符串值的数组。...JavaScript检查对象是否具有对内存中相同位置的引用。 我们作为参数传递的对象和我们用于检查相等性的对象在内存中位于不同位置,所以它们的引用是不同的。...我刚给它的原型添加了一个方法。 原始类型的字符串自动转换为字符串对象,由字符串原型函数生成。 因此,所有字符串(字符串对象)都可以访问该方法!...These actually have the value of undefined, but you will see something like: 当你为数组中的元素设置一个超过数组长度的值时,JavaScript

    1.8K20

    送你43道JavaScript面试题

    尽管有时我们可能不会给定字符串类型,但它们总是被转换为字符串。 JavaScript解释语句。当我们使用方括号表示法时,它会看到第一个左括号[,然后继续,直到找到右括号]。...虽然它看起来像一个数字,但它并不是一个真正的数字:它有一堆额外的功能,是一个对象。 当我们使用==运算符时,它只检查它是否具有相同的值。 他们都有3的值,所以它返回true。...,则第一个参数的值始终是字符串值的数组。...JavaScript检查对象是否具有对内存中相同位置的引用。 我们作为参数传递的对象和我们用于检查相等性的对象在内存中位于不同位置,所以它们的引用是不同的。...These actually have the value of undefined, but you will see something like: 当你为数组中的元素设置一个超过数组长度的值时,JavaScript

    1.5K20

    送你43道JavaScript面试题

    尽管有时我们可能不会给定字符串类型,但它们总是被转换为字符串。 JavaScript解释语句。当我们使用方括号表示法时,它会看到第一个左括号[,然后继续,直到找到右括号]。...虽然它看起来像一个数字,但它并不是一个真正的数字:它有一堆额外的功能,是一个对象。 当我们使用==运算符时,它只检查它是否具有相同的值。 他们都有3的值,所以它返回true。...,则第一个参数的值始终是字符串值的数组。...JavaScript检查对象是否具有对内存中相同位置的引用。 我们作为参数传递的对象和我们用于检查相等性的对象在内存中位于不同位置,所以它们的引用是不同的。...These actually have the value of undefined, but you will see something like: 当你为数组中的元素设置一个超过数组长度的值时,JavaScript

    1.6K30

    Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day1】 —— 基础篇1

    我们来看一下这张对String操作时内存变化的图:   我们可以看到,初始String值为"唐伯虎",然后在这个字符串后面加上新的字符串"点香烟",这个过程是需要重新在栈堆内存中开辟内存空间的,最终得到了...他们俩均属于字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,这样就不会像String一样创建一些而外的对象进行操作了,速度自然就相对快了。   ...实际应用场景中: 如果不是在循环体中进行字符串拼接的话,直接使用 String 的 “+” 就好了; 单线程循环中操作大量字符串数据 → StringBuilder.append(); 多线程循环中操作大量字符串数据...举例说明: 重点说明:是否重写Object类中的equals方法,会对结果造成的影响 public static void main(String[] args) { // 字符串比较...为什么?   在重写equals()方法时,也有必要对hashCode()方法进行重写,尤其是当我们自定义一个类,想把该类的实例存储在集合中时。

    30931

    十个 PHP 开发者最容易犯的错误

    如果你在想遍历数组时操作数组中每个元素,在 foreach 循环中使用引用会十分方便,例如 $arr = array(1, 2, 3, 4); foreach ($arr as &$value)...如果这样的脚本在多个线程中被调用,他会有导致系统崩溃的潜在危险。 因此,至关重要的是,当你的代码要进行查询时,应该尽可能的收集需要用到的值,然后在一个查询中获取所有结果。...一个我们平时常常能见到查询效率低下的地方 (例如:在循环中)是使用一个数组中的值 (比如说很多的 ID )向表发起请求。...尽可能的通过一次查询得到想要的结果。然而,依然要小心谨慎,不然就可能会出现下面我们要讲的另一个易犯的错误......在类的作用域之外,你仅仅只能检查是否将返回一个 null 值,这并不意味着没有设置相应的键,因为它实际上还可能被设置为 null 。

    3K90

    十个 PHP 开发者最容易犯的错误

    如果你在想遍历数组时操作数组中每个元素,在 foreach 循环中使用引用会十分方便,例如 $arr = array(1, 2, 3, 4); foreach ($arr as &$value)...如果这样的脚本在多个线程中被调用,他会有导致系统崩溃的潜在危险。 因此,至关重要的是,当你的代码要进行查询时,应该尽可能的收集需要用到的值,然后在一个查询中获取所有结果。...一个我们平时常常能见到查询效率低下的地方 (例如:在循环中)是使用一个数组中的值 (比如说很多的 ID )向表发起请求。...尽可能的通过一次查询得到想要的结果。然而,依然要小心谨慎,不然就可能会出现下面我们要讲的另一个易犯的错误......在类的作用域之外,你仅仅只能检查是否将返回一个 null 值,这并不意味着没有设置相应的键,因为它实际上还可能被设置为 null 。

    2.6K50

    你可能从未使用过的11+个JavaScript特性

    我们在 for 循环中看到这个: for(let i = 0, ii = 1; i< 10; i++, ii--) { ... } 当我们要编写短的 lambda 函数时,这会派上用场: const lb...第二个结果就是返回给调用者的内容。 对于三元运算符,它也很有用,因为与短lambda语法相同,它仅接受表达式而不是语句。 二、in in 是用于检查对象中属性是否存在的关键字。...它将检查 "prop" 是否可作为 o 对象中的属性使用。 它返回 true ,因为我们在 o 中定义了 "prop" 属性。...我曾经读到过 undefined 之前可能会被赋予另一个值,而这会伪造其语义。 因此,使用 void 运算符可确保你得到一个真正的 undefined 。 也用于最小化目的。...该运算符将一元 + 运算符的结果取反。 首先,它将操作数转换为其 Number 值,然后取反该值。 -"23" // -23 此处发生的是,字符串 "23" 将转换为其数字类型,从而得到 23 。

    1K10

    易犯错误 | 十个 PHP 开发者最容易犯的错误

    如果你在想遍历数组时操作数组中每个元素,在 foreach 循环中使用引用会十分方便,例如 $arr = array(1, 2, 3, 4); foreach ($arr as &$value)...如果这样的脚本在多个线程中被调用,他会有导致系统崩溃的潜在危险。 因此,至关重要的是,当你的代码要进行查询时,应该尽可能的收集需要用到的值,然后在一个查询中获取所有结果。...一个我们平时常常能见到查询效率低下的地方 (例如:在循环中)是使用一个数组中的值 (比如说很多的 ID )向表发起请求。...尽可能的通过一次查询得到想要的结果。然而,依然要小心谨慎,不然就可能会出现下面我们要讲的另一个易犯的错误......在类的作用域之外,你仅仅只能检查是否将返回一个 null 值,这并不意味着没有设置相应的键,因为它实际上还可能被设置为 null 。

    4.5K20

    java经典入门教程(java从入门到精通第几版好用)

    (shirt+1):非的意思,就是取反,如果表达式为true,使用非就为false 3.if-else选择结构: 适用于基本选择条件的情况 语法:if(要满足的条件){ 满足条件得到的结果...2){ 满足条件2得到的结果 } }else{ 不满足条件1得到的结果 } ==只能够比较数值类型,比较字符串是否相等,使用.equals(“要等于哪个字符串”); 比如:sex.equals...1、确定是否存在重复操作 2、分析出循环条件和循环操作分别是什么 3、套用while循环语法写出循环结构 4、检查循环是否能正确退出 5.do-while循环结构的语法: do{ 循环操作...遇到方法的时候直接执行完方法,获得结果,不进入方法体 6.对象数组:就是自己定义的类型的数组 自己定义类型,如果没有new一个对象,那么它的初始就为null 7.包:在windows中以文件夹的方式存在...包名; 导入包,可以将在这个包中的所有类导入到我们这个类中,导入后才能使用该包中的类 通过ctrl+鼠标左键点击进入定义方法的位置 八、字符串 1.字符串:就是一个或多个字符组成 2.声明字符串:

    1.5K20

    送你58道JavaScript面试题(上)

    当我们输出 members数组时,第一个元素会将引用的对象打印出来。 ---- 47. 下面代码的输出是什么?...设定了 进制 后 (也就是第二个参数,指定需要解析的数字是什么进制: 十进制、十六机制、八进制、二进制等等……), parseInt 检查字符串中的字符是否合法....在这个例子中,所有的映射都是number类型,所以if中的判断 typeofnum==="number"结果都是 true.map函数创建了新数组并且将函数的返回值插入数组。 但是,没有任何值返回。...当函数没有返回任何值时,即默认返回 undefined.对数组中的每一个元素来说,函数块都得到了这个返回值,所以结果中每一个元素都是 undefined. ---- 51. 下面代码输出的是什么?...替代者(replacer)可以是个函数或数组,用以控制哪些值如何被转换为字符串。 如果替代者(replacer)是个 数组 ,那么就只有包含在数组中的属性将会被转化为字符串。

    78120

    一文读懂字符串String

    为什么说字符串是不可变的 在工作中,我们经常要在代码中对字符串进行赋值和改变它的值,但是,为什么我们说字符串是不可变的呢?...这样,str4就指向了堆中创建的这个"abc"字符串对象; 因为str3和str4指向的是不同的字符串对象,结果为false。...因此,保护String类对于提升整个应用程序的安全性至关重要。 当我们在程序中传递一个字符串的时候,如果这个字符串的内容是不可变的,那么我们就可以相信这个字符串中的内容。...StringJoiner StringJoiner是java.util包中的一个类,用于构造一个由分隔符分隔的字符序列(可选),并且可以从提供的前缀开始并以提供的后缀结尾。...如以下代码: String s = "11111...1111";//其中有10万个字符"1" 当我们使用如上形式定义一个字符串的时候,当我们执行javac编译时,是会抛出异常的,提示如下: 错误: 常量字符串过长

    53220

    关于python字典类型最疯狂的表达方式

    这是在cpython解释器交互界面中计算上述字典表达式时得到的结果: >>> {True:'yes',1:'no',1.0:'maybe'}{True:'maybe'} 我承认,当我第一次看到这个结果时...但是当你逐步研究其中发生的过程时,这一切都是有道理的。所以,让我们思考一下为什么我们得到这个 -我想说的是出乎意料- 的结果。...“布尔类型是整数类型的一个子类型,在几乎所有的上下文环境中布尔值的行为类似于值0和1,例外的是当转换为字符串时,会分别将字符串”False“或”True“返回。...python字典类型是由一个哈希表数据结构存储的。当我第一次看到这个令人惊讶的字典表达式时,我的直觉是这个结果与散列冲突有关。...Umm..好吧,可以得到什么结论呢? python字典类型是检查两个对象是否相等,并比较哈希值以确定两个密钥是否相同。

    1.1K100

    怒肝一夜,关于Java字符串的全部,都在这份手册里了

    = null || str.trim().isEmpty(); } 03、第三方类库 在实际的项目开发当中,检查字符串是否为空最常用的还是 Apache 的 commons-lang3 包,有各式各样判空的方法...true,第二个结果为 false,这是因为使用 new 关键字创建的对象和使用双引号声明的字符串不是同一个对象,而“==” 操作符是用来判断对象是否相等的。...StringJoiner 是 java.util 包中的一个类,用于构造一个由分隔符重新连接的字符序列。限于篇幅,本文就不再做过多介绍了,感兴趣的同学可以去了解一下。...07、为什么阿里开发手册不建议在 for 循环中使用”+”号操作符进行字符串拼接 来看两段代码。 第一段,for 循环中使用”+”号操作符。...在我的 iMac 上测试出的结果是: 1)第一段代码执行完的时间为 6212 毫秒 2)第二段代码执行完的时间为 1 毫秒 差距也太特么大了吧!为什么呢?

    1K21

    JavaScript中常用的数组方法总结

    当我们想要对数组中的每个元素执行相同的操作,并返回一个新的数组时,可以使用map()函数。它会遍历数组中的每个元素,并将每个元素传递给回调函数进行处理,最后将处理后的结果组成一个新的数组返回。...它应该返回一个布尔值,true表示该元素满足条件,将会被包含在新的数组中,false表示不满足条件,将会被过滤掉。...如果没有找到满足条件的元素,则返回undefined。当我们想要在一个数组中查找满足特定条件的第一个元素时,可以使用JavaScript的find()函数。...some()函数用于判断数组中是否存在满足给定条件的元素。它会遍历数组中的每个元素,当有任意一个元素满足条件时,即返回true。如果没有找到满足条件的元素,则返回false。...concat()和join()函数 当我们需要合并数组或将数组元素连接为字符串时,可以使用JavaScript中的concat()和join()函数。

    33230
    领券