去掉参数中第一个“,”

简介: 去掉参数中第一个“,”

      记录一下,前端传参中,传给我参数是“categoryIds: ,1731557494586241026,1731569816263311362,1731569855534579713,1731858335179223042,1731858366821052418”

     但是后端,因为我的mybati是in查询,所以因为第一个是“,”。所以会导致系统报错。

 

下面提供三个解决方法:
方法一:

找前端,让前端改!!

方法二(修改mybatis):
<if test="pd.categoryIds != null and pd.categoryIds.trim() != ''">
    <choose>
        <when test="pd.categoryIds.startsWith(',')">
            <bind name="categoryIds" value="pd.categoryIds.substring(1)" />
        </when>
        <otherwise>
            <bind name="categoryIds" value="pd.categoryIds" />
        </otherwise>
    </choose>
    AND a.category_id IN (${categoryIds})
</if>

     在这个改进后的条件语句中,我们首先使用 trim() 方法去除 categoryIds 字符串两端的空格。然后使用 startsWith(',') 方法判断是否以逗号开头,如果是则使用 substring(1) 方法去除开头的逗号。最后,我们将处理后的 categoryIds 值赋给一个新的变量 categoryIds,并在条件语句中使用它来构建查询条件。

方法三:
if (categoryIds.startsWith(",")) {
            categoryIds = categoryIds.substring(1);
        }
        String[] categoryIdArr = categoryIds.split(",");
        List<Long> categoryIdList = new ArrayList<>();
        for (String categoryId : categoryIdArr) {
            categoryIdList.add(Long.parseLong(categoryId.trim()));
        }
  1. 如果 categoryIds 字符串以逗号开头,那么使用 substring(1) 方法去掉开头的逗号。这是因为在查询条件中,逗号前面不应该有任何字符。
  2. 使用 split(",") 方法将 categoryIds 字符串按逗号分隔成多个字符串,然后赋值给一个名为 categoryIdArr 的字符串数组。这个数组包含了多个类别 ID 字符串。
  3. 创建一个名为 categoryIdList 的空列表,用于存储将要查询的类别 ID。
  4. 遍历 categoryIdArr 数组中的每个字符串,在遍历过程中,使用 Long.parseLong() 方法将字符串解析成 Long 类型,并且使用 trim() 方法去除字符串两端的空格。然后,将解析后的 Long 类型值添加到 categoryIdList 列表中。
  5. 最后,当循环遍历完成后,categoryIdList 列表中包含了多个类别 ID 的 Long 类型值,这个列表就可以用于查询数据了。
相关文章
|
JSON 小程序 JavaScript
小程序根据返回值是否为空判断标签是否显示
小程序根据返回值是否为空判断标签是否显示
99 0
路径中“./”、“../”、“/”代表的含义
路径中“./”、“../”、“/”代表的含义
|
7月前
如何去掉字符串中文括号及其内部的内容三种方式
如何去掉字符串中文括号及其内部的内容三种方式
270 0
|
Shell 开发工具
写一个脚本/root/bin/argsnum.sh,接受一个文件路径作 为参数;如果参数个数小于1,则提示用户“至少应该给一个 参数”,并立即退出;如果参数个数不小于1,则显示第一个 参数所指向的文件中的空白行数
写一个脚本/root/bin/argsnum.sh,接受一个文件路径作 为参数;如果参数个数小于1,则提示用户“至少应该给一个 参数”,并立即退出;如果参数个数不小于1,则显示第一个 参数所指向的文件中的空白行数
80 1
|
7月前
|
小程序 区块链
血常规常见判断参数
血常规常见判断参数
58 0
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
107 0
|
C语言
第一个C语言项目
第一个C语言项目
58 0
|
API Python
一日一技:如何正确使用 re.sub 的第二个参数
一日一技:如何正确使用 re.sub 的第二个参数
97 0
|
编译器 C++
第一个C++程序
第一个C++程序
104 0
第一个C++程序