Java - 为什么我不能使用 charAt() 来查看一个 char 是否等于另一个?

2024-02-14

我想查看字符串中的字符是否等于某个其他字符值,但我不知道字符串中的字符是什么,所以我使用了这个:

if ( fieldNames.charAt(4) == "f" )

但我收到错误:

"Operator '==' cannot be applied to 'char', 'jav.lang.String'"

But "g" == "h"似乎有效,我知道你可以使用'=='与 char 类型。

还有另一种方法可以正确执行此操作吗? 谢谢!


这是正确的写法:

if ( fieldNames.charAt(4) == 'f' )

在你的原始版本中,"f" is a String and fieldNames.charAt(4) is a char,并且你不能比较String with a char using ==。如果你写'f'代替"f"(如上所述)您将比较char with a char.

注意"g" == "h"也被编译器接受,因为两者"g" and "h" are String对象。但是,您不应该这样做。你应该使用"g".equals("h")反而。要了解原因,请阅读如何在 Java 中比较字符串? https://stackoverflow.com/questions/513832/。 (简短的版本是someString == otherString比较会often给出意想不到的答案!)

相比之下'g' == 'h'既被编译器接受又是正确的代码。


更多背景:JavaString文字是用双引号引起来的,但是char文字用单引号括起来;例如

String s = "g";
char c = 'g';

A char value consists of one and only one character1 but String value can contain more than one character ... or zero characters.

String s2 = "gg";  valid
char c2 = 'gg';  not valid

String s3 = "";  valid
char c3 = '';  not valid

1 - Actually, calling them characters is technically a stretch. A char ... or a value returned by String.getChar is actually an unsigned 16 bit number. But Java natively uses Unicode, and 16 bits is not enough to represent all Unicode code points. It was when Java was designed, but then Unicode added more code planes.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java - 为什么我不能使用 charAt() 来查看一个 char 是否等于另一个? 的相关文章

  • Java - 红、绿、蓝获取RGB

    通过致电getRGB int x int y with a BufferedImage对象 得到一个负数 如何将三个不同的值 红色 绿色和蓝色 转换为这个单个负数 使用颜色类 new Color r g b getRGB
  • 在此代码中,Runnable 未实例化。为什么?

    Runnable cannot instantiate public class Thread4 public static void main String args Thread t1 new Thread new Runnable R
  • HttpSession 内的同步是否可行?

    UPDATE 问题后立即解决 问题 通常 同步是在 JVM 内序列化并行请求 例如 private static final Object LOCK new Object public void doSomething synchroniz
  • Java HashMap 嵌套泛型与通配符

    我正在尝试创建包含自定义类的不同子类的哈希集的哈希映射值的哈希映射 如下所示 HashMap
  • 我应该使用 JDBC getNString() 而不是 getString() 吗?

    我们正在构建一个由 Oracle 数据库支持的 Java 应用程序 我们使用 JDBC 驱动程序 访问该数据库ojdbc6 jar and orai18n jar 数据库模式主要使用以下方式存储文本列NVARCHAR2数据类型 The JD
  • 想要从java中的char数组创建字符流

    我想从 char 数组构造一个流以使用 java 8 功能 例如过滤器和映射 char list a c e Stream
  • AWS SDK 2 承担角色

    Bean public DynamoDbClient amazonDynamoDB final AssumeRoleRequest assumeRoleRequest AssumeRoleRequest builder roleSessio
  • 限制 JPQL 中的结果数量

    如何限制从数据库检索结果的数量 select e from Entity e I need only 10 results for instance 您可以尝试像这样给出 10 个要显式获取的结果 entityManager createQ
  • 如何在 Python 中加密并在 Java 中解密?

    我正在尝试在 Python 程序中加密一些数据并将其保存 然后在 Java 程序中解密该数据 在Python中 我像这样加密它 from Crypto Cipher import AES KEY 1234567890123456789012
  • 为本地@ExceptionHandler编写JUnit测试

    我有以下控制器 class Controller ResponseStatus HttpStatus OK RequestMapping value verifyCert method RequestMethod GET public vo
  • 欧拉项目 45

    我还不是一名熟练的程序员 但我认为这是一个有趣的问题 我想我应该尝试一下 三角形 五边形 六边形 数字由以下生成 公式 三角形 T n n n 1 2 1 3 6 10 15 五边形 P n n 3n 1 2 1 5 12 22 35 六角
  • 使用 equals 方法比较两个对象,Java

    我有一个对象数组 我想将它们与目标对象进行比较 我想返回与目标对象完全匹配的对象的数量 这是我的计数方法 public int countMatchingGhosts Ghost target int count 0 for int i 0
  • Hazelcast:连接到远程集群

    我们有一组 Hazelcast 节点 全部运行在一个远程系统 具有许多节点的单个物理系统 上 我们希望从外部客户端连接到该集群 一个 Java 应用程序 它使用如下代码连接到 Hazelcast ClientConfig clientCon
  • JPA 的 Hibernate 查询提示

    我一直在尝试为所有可以通过设置的提示找到一个明确的资源Query setHint String Object JPA 中的方法调用 但我一无所获 有人知道一个好的参考吗 See 3 4 1 7 查询提示 http docs jboss or
  • 按名称获取 ArrayList

    这是正确的获取方式吗ArrayList
  • 将文本拆分为数组,同时保留 Swift 中的标点符号

    我想将文本拆分为一个数组 保持标点符号与其余单词分隔开 因此字符串如下 Hello I am Albert Einstein 应该变成这样的数组 Hello I am Albert Einstein 我尝试过sting components
  • 线程上下文类加载器和普通类加载器的区别

    线程的上下文类加载器和普通类加载器有什么区别 也就是说 如果Thread currentThread getContextClassLoader and getClass getClassLoader 返回不同的类加载器对象 将使用哪一个
  • 动态创建 JSON 对象

    我正在尝试使用以下格式创建 JSON 对象 tableID 1 price 53 payment cash quantity 3 products ID 1 quantity 1 ID 3 quantity 2 我知道如何使用 JSONOb
  • 膨胀类 android.support.design.widget.CoordinatorLayoute 时出错

    我正在尝试运行我的应用程序 但不断收到标题中列出的错误 我读过周围的内容 人们说尝试将主题更改为 AppCombat 主题 但这似乎不起作用 以下是我遇到的错误 Process com example jmeyer27 crazytiles
  • 根据列中的部分字符串匹配选择数据框行

    我想根据列中字符串的部分匹配从数据框中选择行 例如列 x 包含字符串 hsa 使用sqldf if它有一个like语法 我会做类似的事情 select from lt gt where x like hsa 很遗憾 sqldf不支持该语法

随机推荐

  • 在 PyCUDA 中迭代二维数组

    我试图在 PyCUDA 中迭代一个 2D 数组 但最终得到了重复的数组值 我最初抛出一个小的随机整数数组 它按预期工作 但是当我向它抛出图像时 我一遍又一遍地看到相同的值 这是我的代码 img np random randint 20 si
  • 为什么这个查询使用where而不是索引?

    EXPLAIN EXTENDED SELECT board FROM board WHERE board category id 5 AND board board id 0 AND board display 1 ORDER BY boa
  • 应用 Angular2 ngModel 后格式化输入值

    我正在尝试创建一个指令 将输入值格式化为货币格式 我能够在焦点和模糊上做我必须做的事情 并且在 ngOnInit 钩子 和任何其他钩子 中 输入元素尚未应用任何值 如何 监视 输入的值 并在应用初始值时对其进行格式化 这是我的指令 impo
  • CloudFormation:模板 RDS Mysql 以创建数据库、表、用户或加载架构

    我正在尝试使用 CloudFormation 找出一些用例 第一种情况是拥有现有的 AWS RDS MySQL 服务器 如何通过 CloudFormation 模板创建数据库 表和用户帐户 在查看了 Cloudformation 文档之后
  • VB.NET 中的 GoTo 语句和替代语句

    我在另一个论坛上发布了一个代码片段寻求帮助 人们向我指出使用GoTo语句是非常糟糕的编程习惯 我想知道 为什么会不好呢 有什么替代方案GoTo在 VB NET 中是否可以使用通常被认为是更好的实践 考虑下面的这个片段 用户必须输入他们的出生
  • Pylab - “模块”对象没有属性“图”

    我正在尝试使用 Tkinter 创建视图 因此我也使用 pylab 我的问题是我收到一条错误消息 属性错误 模块 对象没有属性 图 错误来自这行代码 self fig FigureCanvasTkAgg pylab figure maste
  • 加载 hazelcast 的所有实现

    我正在尝试在多个节点上使用 hazelcast 服务器 我已经在地图存储实现中实现了全部加载 我想知道这是否应该只在服务器节点上启用还是在所有节点上启用 如果我在所有节点上部署相同的内容 这是否不会创建不需要的数据库读取操作 如果我需要仅在
  • 弹出到根视图控制器,表视图不会发生动画崩溃

    我在标签栏控制器中有 3 个视图控制器 单击任何选项卡都会在导航堆栈中加载其根视图控制器 例如选项卡 1 选项卡 2 和选项卡 3 导航堆栈中的第二个视图控制器 tab2VC2 有一个 tableView 单击 tab2 在 tab2 中显
  • Django 可以与 py2exe 一起使用吗?

    我们想为大众市场创建一个 Django Intranet 应用程序 我们只需要支持 Windows 用户 并且 Windows 管理员 或 技术用户 需要非常轻松地进行部署 请记住 大多数 Windows 管理员 用户对 Python 等缺
  • 如果“else”无论如何都会发生,是否应该声明? [复制]

    这个问题在这里已经有答案了 可能的重复 在不需要的情况下应该保留还是删除 else https stackoverflow com questions 3533779 should else be kept or dropped in ca
  • 是否有一种 Objective-C 特定方法来计算整数中的位数

    我想计算 Objective c 中 32 位整数中设置为 1 的位 有些语言将其作为单个调用 Java 有 Integer bitCount C 有时有 popcount SQL 有 BIT COUNT Objective C 有等效的吗
  • Servlet 对 AJAX 请求的响应为空

    我正在使用 javascript 向 servlet 发送 AJAX 请求 Servlet 确实正在回复 但响应标头为空 响应文本也为空 当我尝试使用相同的客户端代码将请求发送到 php 页面时 它工作正常 这是两个客户端 您可以尝试它们并
  • 如何解析隐藏的输入值

    我在这里或谷歌上找不到与解析隐藏输入值相关的任何内容 例如这里的这段代码 我正在尝试解析 40 个字符的密钥
  • Hadoop分区器

    我想问一下Hadoop分区器 它是在Mappers中实现的吗 如何衡量使用默认哈希分区器的性能 是否有更好的分区器来减少数据偏差 Thanks 分区器不在映射器内 以下是每个映射器中发生的过程 每个映射任务将其输出写入循环缓冲存储器 而不是
  • MYSQL - 从不同数据库中选择

    如何从两个不同的数据库中将同一查询中的数据选择到同一服务器中 这就是我正在做的事情 但我的查询不起作用 sqlquery SELECT FROM database 2 table 2 WHERE database 1 table 1 dat
  • 使用 MPNowPlayingInfoCenter 处理 CarPlay 中的播放事件

    我正在尝试构建一个带有 CarPlay 集成的示例音频应用程序 该应用程序是一个测试项目 没有 API 没有流媒体 没有复杂的 UI 只是一个简短的歌曲名称列表 具有选择歌曲并播放的功能 我的目标是在 正在播放 屏幕上按下播放按钮时处理回调
  • Java接口是抽象类吗? [复制]

    这个问题在这里已经有答案了 我正在做一些家庭作业 之前试卷上的一个问题要求命名给定 UML 图中的所有抽象类 我想相当简单 有1个抽象类和3个接口 一般来说 这些接口是否符合抽象类的资格 问题是 虽然从技术上讲 接口可以在 Java 等语言
  • 如何阻止 Linux 初始化 USB HID 设备

    我有一个 USB HID 设备 可以在两种不同的模式下工作 模式的选择基于发送给它的 USB 枚举 初始化数据包的顺序 我使用的是运行 Raspbian 的 Raspberry Pi 3 但是如果我为桌面 Ubuntu 发行版编译代码 我也
  • 模板通过 const 引用传递

    我已经看过一些类似的问题 但我仍然很困惑 我正在想办法明确地 不是通过编译器优化等 和 C 03 兼容 避免在将对象传递给对象时复制对象专门模板功能 这是我的测试代码 include
  • Java - 为什么我不能使用 charAt() 来查看一个 char 是否等于另一个?

    我想查看字符串中的字符是否等于某个其他字符值 但我不知道字符串中的字符是什么 所以我使用了这个 if fieldNames charAt 4 f 但我收到错误 Operator cannot be applied to char jav l