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

如何在Java中获取两个数字之间的字符串?,java,string,Java,String,可能重复: 假设我有一个以下格式的字符串: string1 = "1. Stack Overflow 2. Google 3. Reddit" 如何识别数字之间的子字符串?循环检查字符串的每个字符,然后查看其编号是否标记开始索引,最后标记结束索引并执行子字符串 *使用方法* 您可以使用正则表达式和捕获组: String str = "1. Stack overflow 2. Google"; Matcher m = Pattern.compile("\\d\\. (.*?) \\d"

可能重复:

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

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

如何识别数字之间的子字符串?

循环检查
字符串的每个字符
,然后查看其编号是否标记开始索引,最后标记结束索引并执行
子字符串

*使用方法*


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

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"


匹配上述示例的正则表达式如下

\d+\.\s(\D+)\d\.
为了你的方便逃跑了


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

您可以使用正则表达式执行此操作:

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

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

public boolean isInteger( String input )  
    {  
       try  
       {  
          Integer.parseInt( input );  
          return true;  
       }  
       catch( Exception )  
       {  
          return false;  
       }  
    }  
尝试
String.split()

将生成阵列:

{"Stack overflow ", "Google"}

你可以从中选择你想要的任何字符串。为了更加美观,您可能需要
trim()
拉出的字符串。

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

String test = "1. Stack overflow 2. Google";
String[] test2 = test.split("\\d\\.");
  • test2[0]
    将是
    “堆栈溢出”
  • test2[1]
    将成为
    “谷歌”

您可以使用
test2[0].trim()
来消除多余的空格。

-1表示完全不努力。@MattBall我支持这一点。有些人不知道寻求帮助的正确方式有些人对此持敌对态度。这两种方法都同样无知。我们不是代码工厂。我在这个答案中给出了不止一个代码:)或者在一行中:str.replaceAll(“^.*.\\d+\\.”,“”)。m.group(1)中的replaceAll(“\\d.*”,“”)这里的“1”是什么意思?如何获取google
m.group(1)
返回与
(.*)
对应的匹配部分。如果你想在谷歌上搜索,搜索正则表达式捕获组(例如,或者读取)。String1是你在问题中指定的。
String test = "1. Stack overflow 2. Google";
String[] test2 = test.split("\\d\\.");