如何在Java中获取两个数字之间的字符串? [复制]

Posted

技术标签:

【中文标题】如何在Java中获取两个数字之间的字符串? [复制]【英文标题】:How to get the string between two numbers in Java? [duplicate] 【发布时间】:2022-01-22 19:39:23 【问题描述】:

可能重复:How to check that the string contains the number format in Java?

假设我有一个格式如下的字符串:

string1 = "1. Stack Overflow 2. Google 3. Reddit"

如何找出数字之间的子串?

【问题讨论】:

-1 表示完全没有努力。 @MattBall 我支持。 有些人不知道寻求帮助的正确方式,有些人对此怀有敌意。这两种方法同样无知。 【参考方案1】:

字符串拆分功能在这里也可以正常工作:

String test = "1. Stack overflow 2. Google";
String[] test2 = test.split("\\d\\.");
test2[0] 将是 " Stack overflow" test2[1] 将是 " Google"

您可以使用test2[0].trim() 去掉多余的空格。

【讨论】:

【参考方案2】:

遍历String的每个字符,看看它的数字是否标记开始索引并在末尾标记结束索引并执行substring

*使用方法*

Character.isDigit() String.toCharArray() String.subsstring()

【讨论】:

我们不是代码工厂。我在这个答案中给出的不仅仅是代码:)【参考方案3】:

您可以使用正则表达式和捕获组:

String str = "1. Stack overflow 2. Google";
Matcher m = Pattern.compile("\\d\\. (.*?) \\d").matcher(str);

if (m.find())
    System.out.println(m.group(1));    // Prints "Stack overflow"

IDEONE.com demo

【讨论】:

这里的 m.group(1) 中的“1”是什么意思?如何获取谷歌 m.group(1) 返回与(.*?) 对应的匹配部分。如果您想对此进行谷歌搜索,请搜索正则表达式捕获组(或阅读例如here。)【参考方案4】:

试试String.split()

String[] s = string.split("[0-9]+. ", String1);

将产生数组:

"Stack overflow ", "Google"

你可以从中获得任何你想要的字符串。为了更好,您可能想要trim() 拉出的字符串。

【讨论】:

String1 是您在问题中指定的内容。【参考方案5】:

我不会做你的作业。你没有做出任何努力。看看这个简单的方法。在您的代码中实现它并对其进行修改,使其适合您的问题。

public boolean isInteger( String input )  
      
       try  
         
          Integer.parseInt( input );  
          return true;  
         
       catch( Exception )  
         
          return false;  
         
      

【讨论】:

【参考方案6】:

你可以用正则表达式来做到这一点:

Pattern p = Pattern.compile("\\d+\\. (\\D+)\\d");
Matcher m = p.matcher(str);
if (m.find()) 
    System.out.println(m.group(1));

【讨论】:

或者一行:str.replaceAll("^.*?\\d+\\.", "").replaceAll(" \\d.*", "")【参考方案7】:

匹配上面例子的正则表达式是

\d+\.\s(\D+)\d\.

为了您的方便而转义。

这将捕获数字(和点)之间的文本作为匹配组 1。

【讨论】:

以上是关于如何在Java中获取两个数字之间的字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在这种情况下如何获取两个字符之间的字符串?

如何在 Swift 中获取两个日期之间的天数? [复制]

如何获取 Oracle 11g 中两个日期之间的天数? [复制]

如何从 JavaScript 中的字符串中获取所有数字? [复制]

如何在java中将十进制数字格式化为两个小数点? [复制]

如何截取两个字符之间的字符串