pageHelper 排序 +- 字符串处理
自己记录一下。
前端要把sort参数传过来,
1. 如果约定是下面这种形式:
sort=id-name+age+
直接在java后台进行替换就行,连正则都不用。
sort = sort.replace("-", " desc,").replace("+", " asc,");
sort = sort.substring(0, sort.length() - 1);
PageHelper.startPage(pageNum, pageSize, sort)即可
2. 但是,大家好像都是采用类似这样的形式:
sort=+id-name+age
想要把+ - 替换成对应的asc desc就不是那么随便了。
我的方式:
sort = sort.replaceAll("\\+([\\w]+)", " $1" + " asc,");
sort = sort.replaceAll("\\-([\\w]+)", " $1" + " desc,");
sort = sort.substring(0, sort.length() - 1);
PageHelper.startPage(pageNum, pageSize, sort)
$1是用来获取前面正则表达式中的第1个小括号中的值的。我的第一个小括号把 减号后面的单词获取到,所以直接拼接asc, 就可以了。
同理,$2是用来获取第2个小括号中的内容的。
3. Demo:
public class Re {
public static void main(String[] args) throws Exception {
String a1 = "+id";
String a2 = "+id-name+age";
String a3 = "id+name-age";
symbolReplace(a1);
symbolReplace(a2);
symbolReplace(a3);
}
public static String symbolReplace(String sort) throws Exception {
if (!Pattern.matches("((\\+|\\-)[\\w]+)+", sort)) {
// throw new Exception();自己定义一个格式非法异常,这里抛出去。
}
sort = sort.replaceAll("\\+([\\w]+)", " $1" + " asc,");
sort = sort.replaceAll("\\-([\\w]+)", " $1" + " desc,");
sort = sort.substring(0, sort.length() - 1);
return sort;
}
}
pageHelper 排序 +- 字符串处理的更多相关文章
- 【转】借助System.Linq.Dynamic, IQueryable根据排序字符串排序
在使用Entity Framework时,若有多个排序,需要OrderBy (OrderByDescending)再ThenBy (ThenByDescending) 假设需要根据Name升序排序,再 ...
- 借助System.Linq.Dynamic, IQueryable根据排序字符串排序
在使用Entity Framework时,若有多个排序,需要OrderBy (OrderByDescending)再ThenBy (ThenByDescending) 假设需要根据Name升序排序,再 ...
- JS 用sort方法排序字符串
JavaScript提供了一种更简便的方法用于比较两个字符串——localeCompare(),localeCompare()使用本地特定的顺序来比较两个字符串,语法如下:string.localeC ...
- hdu1106 排序(字符串分割,strtok+sscanf)
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...
- C根据排序字符串
#include<stdio.h> #include<string.h> #include <stdlib.h> #define STR_LEN_MAX 100 c ...
- 洛谷P1781 宇宙总统【排序+字符串】
地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统. 输入输出格式 输入格式: president.in 第一行为一个 ...
- [leetcode]791. Custom Sort String自定义排序字符串
S and T are strings composed of lowercase letters. In S, no letter occurs more than once. S was sort ...
- Java TreeSet集合排序 && 定义一个类实现Comparator接口,覆盖compare方法 && 按照字符串长度排序
package TreeSetTest; import java.util.Iterator; import java.util.TreeSet; import javax.management.Ru ...
- 字符串排序简单的工具类,数组转list,list转数组
public static void main(String[] args) { /* String[] str = {"a", "c", "b&qu ...
随机推荐
- 【Revit API】创建共享参数
话不多说,直接上代码 var app = doc.Application; app.SharedParametersFilename = sharedParamFilePath; Definition ...
- sql server 小技巧(7) 导出完整sql server 数据库成一个sql文件,包含表结构及数据
1. 右健数据库 –> Tasks –> Generate Scripts 2. 选择所有的表 3. 下一步,选择Advanded, Types of data to script ...
- hdu5242 Game (贪心+dfs序)
dfs序后用线段树来记每个节点的前缀和 每次找一个前缀和最大的节点,然后把它到根的路径上的每个之前没被走过的点 对应的dfs序的区间 减掉那个点的权值 每个点最多被减一次,复杂度是$O(nlogn)$ ...
- 【bzoj1030】 JSOI2007—文本生成器
http://www.lydsy.com/JudgeOnline/problem.php?id=1030 (题目链接) 题意 给出$n$个单词,问有多少个长度为$m$的文本中至少包含一个单词. Sol ...
- 【纪中集训2019.3.27】【集训队互测2018】小A的旅行(白)
题目 描述 \(0-n-1\)的图,满足\(n\)是\(2\)的整数次幂, $ i \to j $ 有 $ A_{i,j} $ 条路径: 一条路径的愉悦值定义为起点和终点编号的\(and\)值 ...
- jQuery EasyUI API 中文文档 - 消息框(Messager)
http://www.cnblogs.com/Philoo/archive/2011/11/15/jeasyui_api_messager.html Messager 消息框 博客园 风流涕淌 (p ...
- eos源码剖析之controller
controller::block_status,区块状态枚举类,包括: irreversible = 0,该区块已经被当前节点应用,并且被认为是不可逆的.validated = 1,这是由一个有效生 ...
- python---django中orm的使用(4)字段,参数(on_delete重点)补充,一对多,一对一,多对多
1.索引: 普通索引:加快查找速度 唯一索引:加快查找速度,唯一约束 主键索引:加快查找速度,唯一索引,不为空 class UserInfo(models.Model): username = mod ...
- Codeforces Round #481 (Div. 3) D. Almost Arithmetic Progression
http://codeforces.com/contest/978/problem/D 题目大意: 给你一个长度为n的b(i)数组,你有如下操作: 对数组中的某个元素+1,+0,-1.并且这个元素只能 ...
- sh脚本学习之:变量
变量的创建 环境配置 /etc/profile =>~/.bash_profile(~/.bash_login,~/.profile) => ~/.bashrc sh声明 name=&qu ...