0

次のような一連の文字列があります (いくつかの例を示すため)。

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

これらの文字列から種番号のみを抽出したいと思います。つまり、「S」文字に続く数字のみです。したがって、文字列を分割した後(またはそれらから抽出した後?)、次のようになりたいと思います。

1 2  
2  
3 4  
1 2 

これは、Java で 1 行または 2 行を使用して実行できるものですか? それとも、これは、現在持っているように、シーケンスを一度、次にもう一度、そしてもう一度分割する、複数ステップの一連のループでしょうか?

みんなありがとう!

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 に答える