私はこのような文字列を持っています
The#red#studio#502#4
配列内の3つの異なる文字列に分割する必要があります
s[0] = "The red studio"
s[1] = "502"
s[2] = "4"
問題は、最初のものには単語のみが含まれ、2 番目と 3 番目には数字のみが含まれている必要があることです...
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
イデオネリンク.
@Srinivas のほうがエレガントだと思うので、自分の impl を編集することにしました。テストはまだ有用なので、残りの回答は残しておきます。@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("#")' 文字列配列が返されます....