簡體   English   中英

將字符串拆分為字符串數組Java

[英]Splitting String into Array of Strings Java

我有一個看起來像這樣的字符串

The#red#studio#502#4

我需要將它分成數組中的3個不同的字符串

s[0] = "The red studio"
s[1] = "502"
s[2] = "4"

問題是第一個應該只有單詞而第二個和第三個應該只有數字......

我試圖使用s.split()方法,但沒有運氣。

String s= "The#red#studio#502#4";
String[] array = s.split("#(?=[0-9])");
for(String str : array)
{
  System.out.println(str.replace('#',' '));
}

輸出:

The red studio  
502  
4  

Ideone 鏈接

我決定編輯我的impl因為我認為@ Srinivas更優雅。 我將離開我的其余部分,因為測試仍然有用。 它也傳遞了@ Srinivas的例子。

package com.sandbox;

import com.google.common.base.Joiner;
import org.apache.commons.lang.StringUtils;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

import static org.junit.Assert.assertEquals;

public class SandboxTest {

    @Test
    public void testQuestionInput() {
        String[] s = makeResult("The#red#studio#502#4");
        assertEquals(s[0], "The red studio");
        assertEquals(s[1], "502");
        assertEquals(s[2], "4");
    }

    @Test
    public void testAdditionalRequirement() {
        String[] s = makeResult("The#red#studio#has#more#words#502#4");
        assertEquals(s[0], "The red studio has more words");
        assertEquals(s[1], "502");
        assertEquals(s[2], "4");
    }

    private String[] makeResult(String input) {
        // impl inside
    }
}

只需嘗試:'String s [] = yourString.split(“#”)'它將返回字符串數組....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM