mysql的pagehelper排序_pageHelper 排序 +- 字符串处理

本文介绍如何处理前端传递的sort参数,包括约定的简化替换规则和复杂情况下的正则表达式处理,重点讲解如何将'+'和'-'转换为asc和desc,并应用于Spring Boot的PageHelper分页。
摘要由CSDN通过智能技术生成

自己记录一下。

前端要把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;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值