当前位置: 首页 > 知识库问答 >
问题:

以通用方式从java String中提取特定的子字符串

蔚承天
2023-03-14

我有一个以下格式的Java字符串==ocid1。instancepool。oc1.iad。aaaaaaaa wq4bibigdvw6esvmbia4zhs7dkaposzkzxuvir2ajtfyciih45fa

我想提取第三点和第四点之间的子字符串,即“iad”。实现这一点的最佳方法是什么?逻辑应该是通用的,并且应该适用于任何有四个点的字符串

共有3个答案

仲皓君
2023-03-14

这看起来像是“我该怎么用”的复制品作为带字符串的分隔符。java中的split()。

答案是:

 String[] parts = myString.split("\\.");

要拆分的参数是正则表达式,因此您必须转义保留的“.”。请参阅正则表达式中必须转义哪些特殊字符?。

索引为3的数组元素是第四个条目:

 String thePartIWant = parts[3];

我不太清楚你所说的“泛型”是什么意思,但这在Java中被大量使用。也有第三方LIB可以做到这一点,比如Apache StringUtils。

谭研
2023-03-14

这是一个相当基本的“如何使用java”问题:字符串操作一直在出现,幸运的是,大多数编程语言都有一套强大的选项,直接烘焙到语言或标准库中来完成这项工作!

您应该查看Pattern-java的正则表达式实现,它可以很好地做到这一点。请记住,.是“任何字符”的正则表达式,因此要找到一个实际的文字点,您需要将\\.添加到正则表达式字符串文字中-这是一个实际的.字符。

如果正则表达式没有引起您的兴趣,您还可以简单地组合一些indexOf的调用来查找第3和第4个点的索引,然后使用substring在给定这2个索引的情况下获取iad。有关此的更多信息,请查看Stringjavadoc。

我认为在这里用勺子喂你实现是不合适的;在某个时候,你只是要求SO一次写一行,当这种情况发生时,没有人会赢。

能业
2023-03-14

像这样怎么样。

  • \ 逃避。并用作分割的目标
String s = "ocid1.instancepool.oc1.iad.aaaaaaaawqq4ibigdvw6esvmbia4zhs7dkaposzkzxuvir2ajtfyciih45fa";
String result = s.split("\\.")[3];

System.out.println(result);

打印

iad

查看模式和字符串以了解更多信息。

 类似资料:
  • 我有一个以下格式的Java字符串==ocid1。instancepool。oc1.iad。aaaaaaaa wq4bibigdvw6esvmbia4zhs7dkaposzkzxuvir2ajtfyciih45fa 我想提取第三个和第四个点之间的子串,即“iad”。实现这一点的最佳方式是什么?逻辑应该是通用的,并且应该适用于任何有四个点的字符串。

  • 问题内容: 我有一个文本字段,看起来像: 我想获取没有重复的文本。获得的含义: 不可能有double like的情况。 我知道这是在数据库中保存数据的可怕方法。我无法更改数据的保存方式。我只需要从此列中获得非常具体的信息(一次)。 我试着做: 这给了我,但对许多人来说是行不通的。 我曾想过使用正则表达式,但是我不知道有多少个。 我怎么做? 问题答案: 这不是工作,但有可能: 笔记: 根据col最大

  • 我得到以下字符串: 我想从里面拿走食物和饮料。 我尝试了以下代码: 但它给人的感觉是,食物很刺激,喝了很多,离食物很近,三个和四个。

  • 问题内容: 请原谅我的熊猫新手问题,但我有一列美国城镇和州,例如下面所示的截短的版本(出于某些奇怪的原因,该列的名称称为“ Alabama [edit]”,该列与第一个列中的0-7城镇值): 每个州的城镇均在每个州名称之下,例如,费尔班克斯(列值9)是阿拉斯加州的一个城镇。 我想要做的是根据州名称拆分城镇名称,这样我就有两列“州”和“地区名称”,其中每个州名称与每个城镇名称相关联,如下所示: 。。

  • 问题内容: 例如,我有一个存储数字和单位的字符串 例如,我想添加权重 谢谢! 我试图提取数字只是为了对它们进行一些操作……最简单的方法是什么?我只处理这两种格式,即数字位于字符串的开头或结尾。 问题答案: 从字符串中提取数字的最简单方法是使用正则表达式和。 可能您需要更复杂的东西,但这是一个很好的第一步。 请注意,您仍然必须调用结果以获取正确的数字类型(而不是另一个字符串):

  • 下面是一个示例字符串: