0

我有一系列如下所示的字符串(以显示一些示例):

S1+2S2  
S2  
2S3+S4  
S1+S2  

我只想从这些字符串中提取物种编号。也就是说,只有“S”字符后面的数字。因此,在拆分字符串(或从中提取?)之后,我希望它产生:

1 2  
2  
3 4  
1 2 

这是否可以在 Java 中使用一两行代码来完成?或者这会是一个多步骤的循环系列,将序列拆分一次,然后再一次,然后再一次,就像我目前拥有的那样?

多谢你们!

4

1 回答 1

1

这通过了您的测试:

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”替换为“”。然后它将所有 + 符号替换为空格。

于 2013-02-15T19:26:54.940 回答