首页 > 试题广场 >

查找字符串中逗号出现的次数

[编程题]查找字符串中逗号出现的次数
  • 热度指数:83531 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
现有strings表如下:
  • id指序列号;
  • string列中存放的是字符串,且字符串中仅包含数字、字母和逗号类型的字符。
id string
1
2
3
10,A,B,C,D
A,B,C,D,E,F
A,11,B,C,D,E,G

请你统计每个字符串中逗号出现的次数cnt。
以上例子的输出结果如下:
id cnt
1
2
3
4
5
6

示例1

输入

drop table if exists strings;
CREATE TABLE strings(
   id int(5)  NOT NULL PRIMARY KEY,
   string  varchar(45) NOT NULL
 );
insert into strings values
(1, '10,A,B'),
(2, 'A,B,C,D'),
(3, 'A,11,B,C,D,E');

输出

1|2
2|3
3|5
mysql中查找字符串中某个符号或字符出现的次数
例:查找字符串’10,A,B’ 中逗号’,'出现的次数?
用到的函数:
length(s)函数: s是字符串, 返回的是所求的字符串s的长度。
replace(a,b,c): 在字符串a中,将a中出现的b,替换成c。再把这个替换之后的串的结果返回。

题解答案:
select id,length(string)-length(replace(string,",","")) from strings;


发表于 2021-12-07 14:23:46 回复(5)
SELECT
    id,
    length(
        regexp_replace(STRING, '[A-Z0-9]', '')
    )
FROM
    strings;

使用正则表达是把字母数字删除。取长度即可

发表于 2021-12-25 20:05:02 回复(1)
哦……原来是这个样子的呀
发表于 2021-12-08 10:30:05 回复(0)
select id, length(string)-length(replace(string,",",""))
from strings
发表于 2021-12-07 10:59:02 回复(0)
select length(string)-length(replace(string,',','') ) cont,id from strings;
这个的思路是,差值。
确定“,”出现的次数,现将“,”在字符串中都去掉,用原来的字符串的长度减去去掉后的字符串的长度,即可得出。
用到的知识点
1)length函数;
2)replace函数;replace(列名,被替换的值,替换值)
发表于 2022-02-03 20:25:40 回复(0)
select id, (length(string)-length(replace(string,',',''))) as cnt
from strings;
此sql的意思就是,将string字段里的逗号,全部替换成空,每替换一个逗号,长度就会减一,那用起初的长度减去替换后的长度就是包含了几个逗号

发表于 2022-10-21 15:08:34 回复(0)
一看题最开始的想法就是:
看逗号    字符串查找函数position()和instr(),但是发现光查找不能提取出来计数,所以这条路肯定是行不通啦
转变思路,不看逗号,那就是其余的字符串加上逗号就是整个长度,那反过来就是整个长度减掉字符串的长度就能知道有几个逗号啦
length(总字符串长度)-length(replace(string,“,”,“”) # 把逗号替换掉无值
所以此题:
select id,length(string)-length(replace(string,",",""))
from strings
发表于 2024-09-04 14:34:26 回复(0)
select id,length(string)-length(replace(string,',','')) from strings ;
发表于 2023-05-25 16:43:42 回复(0)
length(s)函数: s是字符串, 返回的是所求的字符串s的长度。
replace(a,b,c): 在字符串a中,将a中出现的b,替换成c。再把这个替换之后的串的结果返回。
‘10,A,B’ —> ‘10AB’
select id,length(string)-length(replace(string,',','')) cnt from strings

发表于 2023-02-23 17:45:10 回复(0)
select id, length(string)-length(replace(string, ',','')) as cnt
from strings
发表于 2022-04-17 19:35:33 回复(0)
主要考察 字符串函数——length()函数,以及巧妙应用replace()函数去除逗号

SELECT id, LENGTH(string) - LENGTH(REPLACE(string, ',', '')) cnt
FROM strings


发表于 2022-01-23 11:30:16 回复(1)
select id,length(string)-length(replace(string,",","")) as cnt
from strings

发表于 2024-11-08 17:10:45 回复(0)
SELECT id,
length(string) - length(replace(string, ',', '')) AS cnt
FROM strings
发表于 2024-10-24 17:29:17 回复(0)
so easy
发表于 2024-10-23 15:14:58 回复(0)
SELECT id,(
    LENGTH(string)-LENGTH(REPLACE(string,',',''))
    ) cnt 
FROM strings

发表于 2024-10-13 15:47:11 回复(0)
SELECT
    id,
    LENGTH(string) - LENGTH(REPLACE(string, ',', '')) cnt
FROM
    strings

发表于 2024-08-26 12:40:09 回复(0)
select
    id,
    length(string)-length(replace(string,',','')) cnt
from strings
发表于 2024-06-10 14:23:41 回复(0)
select id,sum(length(s.string)-length(replace(s.string,',',''))) cnt
from strings s
group by 1

发表于 2024-05-09 23:34:22 回复(0)
select id,
length(string)-(length(replace(string,',',''))) as cnt
from strings

编辑于 2024-04-25 14:33:07 回复(0)
select id,char_length(string)-char_length(replace(string,',','')) cnt from strings;

发表于 2024-02-06 10:56:20 回复(0)