有没有办法将开关与 String.contains("") 集成?

2024-03-15

我需要检查 String 对象是否包含()各种子字符串,并根据结果执行不同的代码片段。目前我有一系列的 else if。如果可能的话,我想将其转换为开关。有没有办法做到这一点?

现在:

 if (SomeString.contains("someSubString")) {

    . . . do something

 } else if (SomeString.contains("anotherSubString")) {

    . . . do something else

 } else if (SomeString.contains("yetanotherSubString")) {

    . . . do something even more different

 }  
 .
 .
 .

当我遇到这样的情况,并且真的不想使用else if,我做了这样的事情:

String[] cases = {"someSubString", "anotherSubString", "yetanotherSubString"};

int i;
for(i = 0; i < cases.length; i++)
    if(SomeString.contains(cases[i])) break;

switch(i) {
    case 0: //someSubString
        System.out.println("do something");
    break;
    case 1: //anotherSubString
        System.out.println("do something else");
    break;
    case 2: //yetanotherSubString
        System.out.println("do something even more different");
    break;
    default:
        System.out.println("do nothing");
}

当然,这有一些缺点。对于初学者来说,如果您在除末尾之外的任何位置添加其他字符串,所有索引都会发生变化,并且您必须手动更正。不过,我想我已经使用过类似的东西一两次,并且认为它使代码更具可读性。据推测,这些指数在程序中具有一定的意义,从而将0...someSubString以对问题有意义的方式。

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

有没有办法将开关与 String.contains("") 集成? 的相关文章

  • java.lang.Class: 在 java 程序中初始化 log4j 属性文件时出错

    我正在尝试使用 log4j 运行独立的 java 程序 但在调试时收到以下消息 控制台上没有 log4j 相关日志 log Logger 1343 java lang Class ERROR in 18b4aac2 有人可以建议这里出了什么
  • Java 创建浮雕(红/蓝图像)

    我正在编写一个 Java 游戏引擎 http victoryengine org http victoryengine org 并且我一直在尝试生成具有深度的 3D 图像 您可以使用那些红色 蓝色眼镜看到 我正在使用 Java2D 进行图形
  • 通过 InjectMocks Spy 注入对象

    我需要对一个类运行一系列单元测试 该类具有 Autowired Logger 实现 实现的基本思想是 Mock Logger logger InjectMocks TestedClass tested 但我想保存日志输出功能 Mockito
  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • Java:从元素创建 DOM 元素,而不是文档

    如您所知 在 Java 中创建 Dom 元素的正确方法是执行以下操作 import org w3c dom Document import org w3c dom Element Document d Element e e d creat
  • Spring Stomp over Websocket:流式传输大文件

    我的SockJs客户端在网页中 发送帧大小为16K的消息 消息大小限制决定了我可以传输的文件的最大大小 以下是我在文档中找到的内容 Configure the maximum size for an incoming sub protoco
  • 想要开发像 Facebook 这样的网站 - 处理数百万个请求 - 高性能 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想用 Java 开发一个像 Fac
  • @EnableTransactionManagement 的范围是什么?

    我试图了解正确的放置位置 EnableTransactionManagement多个 JavaConfig 上下文的情况下的注释 考虑以下场景 我在 JPAConfig java 和 AppConfig java 中有 JPA 配置以及一组
  • Install4j:如何在安装结束时执行命令行 java -jar filename.jar

    在 Intall4j 中 在安装结束时 我只想通过执行如下命令行来初始化某些内容 java jar filename jar 我怎样才能归档这个任务install4j Thanks 将 运行可执行文件或批处理文件 操作添加到 安装屏幕 并设
  • 参数动态时如何构建 JPQL 查询?

    我想知道是否有一个好的解决方案来构建基于过滤器的 JPQL 查询 我的查询太 富有表现力 我无法使用 Criteria 就像是 query Select from Ent if parameter null query WHERE fiel
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • jmap - 组织和堆操作会给 jvm 带来开销吗?

    正如标题所述 需要多少开销jmap histo and jmap heap分别带到jvm 如果一个内存敏感的 Java 进程处于OutOfMemory 例如 大约 96 的堆已满 并且无法通过 full gc 清除 其中一项操作是否有可能将
  • 如何使用 Mockito 和 Junit 模拟 ZonedDateTime

    我需要模拟一个ZonedDateTime ofInstant 方法 我知道SO中有很多建议 但对于我的具体问题 到目前为止我还没有找到任何简单的解决办法 这是我的代码 public ZonedDateTime myMethodToTest
  • 在 AKKA 中,对主管调用 shutdown 是否会停止其监督的所有参与者?

    假设我有一位主管连接了 2 位演员 当我的应用程序关闭时 我想优雅地关闭这些参与者 调用supervisor shutdown 是否会停止所有参与者 还是我仍然需要手动停止我的参与者 gracias 阻止主管 https github co
  • ExceptionHandler 不适用于 Throwable

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • Path2D 上的鼠标指针检测

    我构建了一个Path2D http docs oracle com javase 7 docs api java awt geom Path2D html表示由直线组成的未闭合形状 我希望能够检测何时单击鼠标并且鼠标指针靠近路径 在几个像素
  • MongoDB Java 驱动程序:MongoCore 驱动程序与 MongoDB 驱动程序与 MongoDB 异步驱动程序

    MongoDB Java 驱动程序有三种不同的驱动程序选项 核心驱动 MongoDB 驱动程序 MongoDB 异步驱动程序 The 驱动程序描述页面 https docs mongodb org ecosystem drivers jav
  • 使用 eclipse IDE 配置 angularjs

    我想开始使用 AngularJs 和 Java Spring 进行开发 我使用 Eclipse 作为 IDE 我想配置我的 Eclipse 以使这些框架无缝工作 我知道我可能要求太多 但相信我 我已经做了很多研究 你们是我最后的选择 任何帮

随机推荐

  • Docker:如何对 docker Push 进行身份验证?

    嗨 我正在尝试docker push docker simple httpserver docker push myregistry simplehttpserver latest The push refers to a reposito
  • 活动管理日期过滤器日期格式自定义

    是否有简单的方法可以更改 ActiveAdmin 日期过滤器显示格式的默认 ISO 格式 yyyy mm dd 您可以向日期选择器提供额外的选项 而不是覆盖 js 如下所示 f input my date as datepicker dat
  • 禁用 Android WebView WebRTC

    Fresh Cromium WebView 支持 WebRTC 但我想禁用它 Chrome 应用程序可以允许在 Chrome 中执行此操作 因此这似乎并非不可能 我进行了很多研究 但没有找到合适的解决方案 任何帮助 将不胜感激 更新 仍未解
  • 快速显示所有 Firebase 用户的帖子

    我需要使用 firebase 作为后端创建一个 UISearchController 我目前在 firebase 中有两个用户 一名用户发布了一篇帖子 另一名用户发布了四篇帖子 我希望能够搜索我的数据库中所有书籍的标题 共有五本书 但是 到
  • 在node.js中使MySQL的ORDER BY动态化

    我想做ORDER BYNode js 中的 mysql 查询是动态的 但这不起作用 我console logmultiQuery 变量和一切看起来都很完美 但运行时它根本不起作用 这就是我所拥有的 var order multiQuery
  • Oracle SELECT - 双引号还是没有双引号? [复制]

    这个问题在这里已经有答案了 All 在为 Oracle 11i 数据库编写 SELECT 查询时 为什么 Oracle 中的某些表强制对所选字段应用引号 而其他表则不然 举个我最近遇到的例子 在 Aqua Data Studio 的查询分析
  • 如何在真实设备(移动设备)上开发Windows 10 UWP?

    我正在尝试在真实设备上调试我的应用程序 带有 Windows 10 Mobile 10 0 10581 0 的 lumia 830 开发者模式在两种设备 移动设备和 PC 上均处于开启状态 但是当我尝试在设备上模拟应用程序时 出现错误 DE
  • Rails ActionMailer 编码

    Setup Ruby 1 9 2 Rails 3 2 2 我的电子邮件编码遇到一些问题 注意 我对编码之类的东西不太熟悉 使用 ActionMailer 发送电子邮件时 电子邮件中的 html 出现了一些奇怪的情况 所有等号 都更改为 3D
  • 如何更改MySQL表的默认字符集?

    有一个MySQLtable这个定义取自SQLYog Enterprise Table Create Table etape prospection CREATE TABLE etape prospection etape prosp id
  • .h 是从 .h.in 生成的吗?

    我的库在构建后创建的 h 文件中有结构定义 但我在相应的 h in 中找不到这些定义 有人可以告诉我这一切是如何工作的以及它从哪里获取额外信息吗 具体来说 我正在构建 pth 用户空间线程库 它有 pth p h in 它不包含我正在寻找的
  • Pycharm-无法安装opencv

    我是 PyCharm 的新手 并尝试了解如何安装 openCV 包以及后来的 cv2 包 我在这里看到一个旧的讨论 建议首先从 internet 下载 openCV 然后更新系统解释器 我下载了 openCV 并将其放置在我管理项目的同一目
  • Fluentd 是否支持文件输出的日志轮换?

    我当前使用的设置是具有多个容器的 Docker 组合堆栈 这些容器将其日志记录信息发送到运行 Fluentd 守护进程的日志记录容器 在 compose 堆栈内 Fluentd 的配置包括一in forward收集日志并将其写入单独文件的源
  • 模拟/存根“super”调用

    我想模拟一下super调用 尤其是某些 ES6 类中的构造函数 例如 import Bar from bar class Foo extends Bar constructor opts super opts someFunc super
  • GitHub 上隐藏的 Markdown 文本

    GitHub 上有专门的 Markdown 语法来支持隐藏文本吗 我只是想把一些待办事项记在里面README md为了我自己 不让别人看到 EXTRAS 为了致敬 Tamas 的出色回答 以及人们多次提出的问题 下面是如何在 MD 文件中编
  • C++11 中缺少 std::u8string

    为什么 C 11 提供std u16string and std u32string并不是std u8string 我们需要实现utf 8编码还是使用额外的库 C 20 添加char8 t and std u8string http www
  • MySQL 8.0 升级后特定查询性能不佳

    编辑 我在 Python 中看到与 PHP 相同的行为 好像和MySQL有关 我们正在尝试从 MySQL 5 7 升级到 8 0 我们的代码库使用 PHP MySQLi 来查询 MySQL 服务器 在我们的测试设置中 我们发现绑定大量参数的
  • 添加推送通知时出现无效权利错误

    我正在尝试按照本教程向我的聊天应用程序添加推送通知 https www appcoda com firebase push notifications https www appcoda com firebase push notifica
  • 如何为动态创建的 QML 元素添加事件处理程序?

    我根据以下内容动态添加了一些 qml 组件到我的 gui 中这篇博文 http kunalmaemo blogspot kr 2011 04 creating qml element dynamically on html 如何为这些新创建
  • 如何在php中获取目录中的最新文件[重复]

    这个问题在这里已经有答案了 所以我有这个处理 CSV 文件的应用程序 我有一行代码来加载文件 myFile data FrontlineSMS Message Export 20120721 csv The name of the CSV
  • 有没有办法将开关与 String.contains("") 集成?

    我需要检查 String 对象是否包含 各种子字符串 并根据结果执行不同的代码片段 目前我有一系列的 else if 如果可能的话 我想将其转换为开关 有没有办法做到这一点 现在 if SomeString contains someSub