add methods

This commit is contained in:
Looly 2022-07-17 00:38:22 +08:00
parent d6fe591abd
commit 50fe0f4fce
3 changed files with 37 additions and 6 deletions

View File

@ -206,19 +206,37 @@ public class ReUtil {
* @return 匹配后得到的字符串数组按照分组顺序依次列出未匹配到返回空列表任何一个参数为null返回null
* @since 4.0.13
*/
public static List<String> getAllGroups(final Pattern pattern, final CharSequence content, final boolean withGroup0) {
public static List<String> getAllGroups(Pattern pattern, CharSequence content, boolean withGroup0) {
return getAllGroups(pattern, content, withGroup0, false);
}
/**
* 获得匹配的字符串匹配到的所有分组
*
* @param pattern 编译后的正则模式
* @param content 被匹配的内容
* @param withGroup0 是否包括分组0此分组表示全匹配的信息
* @param findAll 是否查找所有匹配到的内容{@code false}表示只读取第一个匹配到的内容
* @return 匹配后得到的字符串数组按照分组顺序依次列出未匹配到返回空列表任何一个参数为null返回null
* @since 4.0.13
*/
public static List<String> getAllGroups(Pattern pattern, CharSequence content, boolean withGroup0, boolean findAll) {
if (null == content || null == pattern) {
return null;
}
final ArrayList<String> result = new ArrayList<>();
ArrayList<String> result = new ArrayList<>();
final Matcher matcher = pattern.matcher(content);
if (matcher.find()) {
while (matcher.find()) {
final int startGroup = withGroup0 ? 0 : 1;
final int groupCount = matcher.groupCount();
for (int i = startGroup; i <= groupCount; i++) {
result.add(matcher.group(i));
}
if(false == findAll){
break;
}
}
return result;
}

View File

@ -174,11 +174,24 @@ public class PageUtil {
* @param pageSize 每页数
* @return 总页数
*/
public static int totalPage(final int totalCount, final int pageSize) {
public static int totalPage(int totalCount, int pageSize) {
return totalPage((long) totalCount, pageSize);
}
/**
* 根据总数计算总页数
*
* @param totalCount 总数
* @param pageSize 每页数
* @return 总页数
* @since 5.8.5
*/
public static int totalPage(long totalCount, int pageSize) {
if (pageSize == 0) {
return 0;
}
return totalCount % pageSize == 0 ? (totalCount / pageSize) : (totalCount / pageSize + 1);
return Math.toIntExact(totalCount % pageSize == 0
? (totalCount / pageSize) : (totalCount / pageSize + 1));
}
/**

View File

@ -111,7 +111,7 @@ public class ReUtilTest {
@Test
public void replaceAllTest2() {
//此处把1234替换为 ->1234<-
final String replaceAll = ReUtil.replaceAll(this.content, "(\\d+)", parameters -> "->" + parameters.group(1) + "<-");
final String replaceAll = ReUtil.replaceAll(content, "(\\d+)", parameters -> "->" + parameters.group(1) + "<-");
Assert.assertEquals("ZZZaaabbbccc中文->1234<-", replaceAll);
}