mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
fix split
This commit is contained in:
@@ -12,7 +12,13 @@ public class StrMatcherTest {
|
||||
public void matcherTest(){
|
||||
final StrMatcher strMatcher = new StrMatcher("${name}-${age}-${gender}-${country}-${province}-${city}-${status}");
|
||||
final Map<String, String> match = strMatcher.match("小明-19-男-中国-河南-郑州-已婚");
|
||||
Console.log(match);
|
||||
Assert.assertEquals("小明", match.get("name"));
|
||||
Assert.assertEquals("19", match.get("age"));
|
||||
Assert.assertEquals("男", match.get("gender"));
|
||||
Assert.assertEquals("中国", match.get("country"));
|
||||
Assert.assertEquals("河南", match.get("province"));
|
||||
Assert.assertEquals("郑州", match.get("city"));
|
||||
Assert.assertEquals("已婚", match.get("status"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -0,0 +1,95 @@
|
||||
package cn.hutool.core.text.split;
|
||||
|
||||
import cn.hutool.core.text.finder.CharFinder;
|
||||
import cn.hutool.core.text.finder.LengthFinder;
|
||||
import cn.hutool.core.text.finder.PatternFinder;
|
||||
import cn.hutool.core.text.finder.StrFinder;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class SplitIterTest {
|
||||
|
||||
@Test
|
||||
public void splitByCharTest(){
|
||||
String str1 = "a, ,,efedsfs, ddf,";
|
||||
|
||||
//不忽略""
|
||||
SplitIter splitIter = new SplitIter(str1,
|
||||
new CharFinder(',', false),
|
||||
Integer.MAX_VALUE,
|
||||
false
|
||||
);
|
||||
Assert.assertEquals(6, splitIter.toList(false).size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void splitByCharIgnoreEmptyTest(){
|
||||
String str1 = "a, ,,efedsfs, ddf,";
|
||||
|
||||
SplitIter splitIter = new SplitIter(str1,
|
||||
new CharFinder(',', false),
|
||||
Integer.MAX_VALUE,
|
||||
true
|
||||
);
|
||||
|
||||
final List<String> strings = splitIter.toList(false);
|
||||
Assert.assertEquals(4, strings.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void splitByStrTest(){
|
||||
String str1 = "a, ,,efedsfs, ddf,";
|
||||
|
||||
SplitIter splitIter = new SplitIter(str1,
|
||||
new StrFinder("e", false),
|
||||
Integer.MAX_VALUE,
|
||||
true
|
||||
);
|
||||
|
||||
final List<String> strings = splitIter.toList(false);
|
||||
Assert.assertEquals(3, strings.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void splitByPatternTest(){
|
||||
String str1 = "a, ,,efedsfs, ddf,";
|
||||
|
||||
SplitIter splitIter = new SplitIter(str1,
|
||||
new PatternFinder(Pattern.compile("\\s")),
|
||||
Integer.MAX_VALUE,
|
||||
true
|
||||
);
|
||||
|
||||
final List<String> strings = splitIter.toList(false);
|
||||
Assert.assertEquals(3, strings.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void splitByLengthTest(){
|
||||
String text = "1234123412341234";
|
||||
SplitIter splitIter = new SplitIter(text,
|
||||
new LengthFinder(4),
|
||||
Integer.MAX_VALUE,
|
||||
false
|
||||
);
|
||||
|
||||
final List<String> strings = splitIter.toList(false);
|
||||
Assert.assertEquals(4, strings.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void splitLimitTest(){
|
||||
String text = "55:02:18";
|
||||
SplitIter splitIter = new SplitIter(text,
|
||||
new CharFinder(':'),
|
||||
3,
|
||||
false
|
||||
);
|
||||
|
||||
final List<String> strings = splitIter.toList(false);
|
||||
Assert.assertEquals(3, strings.size());
|
||||
}
|
||||
}
|
@@ -1,11 +1,10 @@
|
||||
package cn.hutool.core.lang;
|
||||
|
||||
import java.util.List;
|
||||
package cn.hutool.core.text.split;
|
||||
|
||||
import cn.hutool.core.text.StrSplitter;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import cn.hutool.core.text.StrSplitter;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* {@link StrSplitter} 单元测试
|
||||
@@ -18,6 +17,7 @@ public class StrSpliterTest {
|
||||
public void splitByCharTest(){
|
||||
String str1 = "a, ,efedsfs, ddf";
|
||||
List<String> split = StrSplitter.split(str1, ',', 0, true, true);
|
||||
|
||||
Assert.assertEquals("ddf", split.get(2));
|
||||
Assert.assertEquals(3, split.size());
|
||||
}
|
||||
@@ -45,4 +45,13 @@ public class StrSpliterTest {
|
||||
Assert.assertEquals("bin", split.get(2));
|
||||
Assert.assertEquals(3, split.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void splitMappingTest() {
|
||||
String str = "1.2.";
|
||||
List<Long> split = StrSplitter.split(str, '.', 0, true, true, Long::parseLong);
|
||||
Assert.assertEquals(2, split.size());
|
||||
Assert.assertEquals(Long.valueOf(1L), split.get(0));
|
||||
Assert.assertEquals(Long.valueOf(2L), split.get(1));
|
||||
}
|
||||
}
|
@@ -81,15 +81,6 @@ public class StrUtilTest {
|
||||
Assert.assertEquals("", split.get(2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void splitTest3() {
|
||||
String str = "1.2.";
|
||||
List<Long> split = StrUtil.split(str, '.', 0, true, true, Long::parseLong);
|
||||
Assert.assertEquals(2, split.size());
|
||||
Assert.assertEquals(Long.valueOf(1L), split.get(0));
|
||||
Assert.assertEquals(Long.valueOf(2L), split.get(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void splitToLongTest() {
|
||||
String str = "1,2,3,4, 5";
|
||||
|
Reference in New Issue
Block a user