String字符串切割数组 逗号 数字 数组

10 篇文章 0 订阅
9 篇文章 0 订阅
    /**
     * 解析请求的字符串数组
     * @param packNo 请求的字符串    如:12,13,15,666
     * @return
     */
    private List<String> getRequestParam(String packNo) {

        List<String> list = new ArrayList<>();
        // 统一转换为英文分隔符数组
        String[] packNos = packNo.trim().replace(',', ',').split(",");
        for (String materialId : packNos) {
            list.add(materialId);
        }
        // 去除重复数据,控制分段查询的结果
        List<String> collect = list.stream().distinct().collect(Collectors.toList());
        return collect;
    }

    /**
     * 校验请求参数合法性
     * @param str 需要校验的字符串
     * @return
     */
    private boolean checkRequestParam(String str) {

        // 只能数字开头、不能逗号开头、中间支持多个逗号、最后支持多个逗号、不区分中英文逗号分隔。例:111,222,,55,,,
        // String regLoose = "(\\d)+(,|,|\\d+)*";
        // 只能数字开头、不能逗号开头、中间不支持多个逗号、最后不支持多个逗号(最后可以是逗号)、不区分中英文逗号分隔。例:111,222,
        String regRigorous = "(\\d+(\\,|\\,?))+";
        return Pattern.matches(regRigorous, str);
    }

    /**
     * 校验getTaskAndBoxInfo请求参数合法性
     * @param str 需要校验的字符串
     * @return
     */
    private boolean checkTaskRequestParam(String str) {

        // 只能字母或者数字开头,中间不能多个逗号,最后不能多个逗号。如:C999,B999,
        String regRigorous = "((\\d+|[a-zA-Z0-9]+)(\\,|\\,?))+";
        return Pattern.matches(regRigorous, str);
    }
可以使用C语言中的strtok函数来实现字符串切割。具体实现方法如下: ```c #include <stdio.h> #include <string.h> int main() { char str[] = "apple,banana,orange"; char *token; char *delim = ","; char *str_arr[10]; // 最多切割出10个子字符串 // 第一次调用strtok函数时需要传入待切割字符串, // 之后每次调用都应该传入NULL作为第一个参数。 token = strtok(str, delim); int i = 0; while (token != NULL) { str_arr[i++] = token; token = strtok(NULL, delim); } // 输出切割得到的字符串数组 for (int j = 0; j < i; j++) { printf("%s\n", str_arr[j]); } return 0; } ``` 在上面的代码中,我们首先定义了一个待切割字符串`str`,然后定义了一个分隔符`delim`,这里我们使用了逗号`,`作为分隔符。 接着我们定义了一个字符串指针数组`str_arr`,用于存放切割得到的子字符串。这里我们假设最多能切割出10个子字符串,因此数组大小为10。 接下来我们调用了`strtok`函数,第一次传入待切割字符串和分隔符,返回值是指向第一个子字符串的指针。之后每次调用`strtok`函数都应该传入NULL作为第一个参数,函数会接着上一次的位置继续切割字符串。 在while循环中,我们不断调用`strtok`函数,将切割得到的子字符串存放在字符串指针数组`str_arr`中,并且使用计数器`i`记录子字符串的个数。 最后我们遍历字符串指针数组,依次输出每个子字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值