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

以通用方式从java字符串中提取特定子字符串[重复]

韦智刚
2023-03-14

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

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

共有3个答案

夏令秋
2023-03-14

这看起来像是如何使用的重复"."作为分隔符与String.split()在java中。

答案是:

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

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

索引为3的数组元素是第四项:

 String thePartIWant = parts[3];

我不太确定你所说的“通用”是什么意思,但这在Java中经常使用。也有第三方库可以做到这一点——比如Apache StringUtils。

邹昊
2023-03-14

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

您应该看看模式,java的正则表达式实现可以很好地做到这一点。请记住,是“任意字符”的regexp-ese,所以要找到一个实际的文字点,你需要坚持 ——这是一个实际的 字符。

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

我认为在这里用勺子向您提供实现是不合适的;在某些情况下,你只是要求一次编写一行程序,当这种情况发生时,没有人会赢。

黄修永
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”。实现这一点的最佳方法是什么?逻辑应该是通用的,并且应该适用于任何有四个点的字符串。

  • 我想从url字符串中提取子字符串。这是url: 我想开始从id中提取= 直到破折号(-),然后提取剩余的子字符串 请注意,确切的域不是上面的域,这只是一个示例。 有什么想法吗?我非常感谢你的帮助。谢谢 更新: 这就是我到目前为止所做的: 但它只是公开了/pi。

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

  • 我有一个字符串: 我想从中提取,即从右边的最后一个或第一个之后的子字符串。 有人能提供一些帮助吗?

  • 在 String 中提供了两个截取字符串的方法,一个是从指定位置截取到字符串结尾,另一个是截取指定范围的内容。下面对这两种方法分别进行介绍。 1. substring(int beginIndex) 形式 此方式用于提取从索引位置开始至结尾处的字符串部分。调用时,括号中是需要提取字符串的开始位置,方法的返回值是提取的字符串。例如: 2. substring(int beginIndex,int e