我有一系列如下所示的字符串(以显示一些示例):
S1+2S2
S2
2S3+S4
S1+S2
我只想从这些字符串中提取物种编号。也就是说,只有“S”字符后面的数字。因此,在拆分字符串(或从中提取?)之后,我希望它产生:
1 2
2
3 4
1 2
这是否可以在 Java 中使用一两行代码来完成?或者这会是一个多步骤的循环系列,将序列拆分一次,然后再一次,然后再一次,就像我目前拥有的那样?
多谢你们!
这通过了您的测试:
package com.sandbox;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class SandboxTest {
@Test
public void testInputEqualsOutput() {
String input = "S1+2S2\n" +
"S2\n" +
"2S3+S4\n" +
"S1+S2";
String output = processInput(input);
assertEquals("1 2\n" +
"2\n" +
"3 4\n" +
"1 2", output);
}
private String processInput(String input) {
return input.replaceAll("\\d?S", "").replaceAll("\\+", " ");
}
}
该processInput
方法将所有前面可能有数字的“S”替换为“”。然后它将所有 + 符号替换为空格。