Spark SQL 字符串函数汇总

本文总结一些常用的字符串函数。还是在databricks社区版。

  • 字符串截取函数:substr \ substring

  • 字符串的长度函数 len \ length

  • 字符串定位函数 instr

  • 字符串分割函数 split \ split_part

  • 字符串去空格函数:trim \ ltrim \ rtrim

  • 字符串补足函数:lpad \ rpad

  • 字符串拼接函数: concat \ concat_ ws

  • 字符串替换函数: replace \ regexp_replace

  • 正则表达式相关函数:regexp

  • 字符串模糊匹配函数: like \ rlike

  • 字符串转大小写函数: lower Icase \ upper \ ucase

  • json解析函数get json_object

  • 重复字符串函数:repeat

  • URL解析函数:parse url

  • 集合查找函数:find_in_set

  • 字符串反转函数:reverse

CREATE TABLE temp (id int,name string,email string,phone string)
INSERT INTO temp VALUES
  (1, 'John Doe', 'john.doe@example.com', '123-456-7890'),
  (2, 'Jane Smith', 'jane.smith@example.com', '555-555-5555'),
  (3, 'Bob Johnson', 'bob.johnson@example.com', '555-123-4567'),
  (4, 'Alice Brown', 'alice.brown@example.com', '555-987-6543'),
  (5, 'Charlie Davis', 'charlie.davis@example.com', '555-111-2222');
idnameemailphone
1John Doejohn.doe@example.com123-456-7890
2Jane Smithjane.smith@example.com555-555-5555
3Bob Johnsonbob.johnson@example.com555-123-4567
4Alice Brownalice.brown@example.com555-987-6543
5Charlie Davischarlie.davis@example.com555-111-2222
字符串截取函数:substr \ substring

语法1: substr(string A, int start),substring(string A, int start)

返回值: string

**说明:**返回字符串A从start位置到结尾的字符串

语法2: substr(string A, int start, int len),substring(string A, int start, int len)

返回值: string

**说明:**返回字符串A从start位置开始,长度为len的字符串

select t1.*,substr(t1.phone,1,3) as area_number
from temp as t1
idnameemailphonearea_number
1John Doejohn.doe@example.com123-456-7890123
2Jane Smithjane.smith@example.com555-555-5555555
3Bob Johnsonbob.johnson@example.com555-123-4567555
4Alice Brownalice.brown@example.com555-987-6543555
5Charlie Davischarlie.davis@example.com555-111-2222555
substring

substring(str, pos[, len]) - Returns the substring of str that starts at pos and is of length len, or the slice of byte array that starts at pos and is of length len.

substring(str FROM pos[ FOR len]]) - Returns the substring of str that starts at pos and is of length len, or the slice of byte array that starts at pos and is of length len.

substring(str, pos[, len])-返回从pos开始且长度为Len的str子字符串,或从pos开始且长度为len的字节数组切片。

substring(str FROM pos[ FOR len]])-返回str的子字符串,从pos开始,是长度len,或从pos开始且长度为en的字节数组切片

select 
   t1.phone
  ,substring(t1.phone,1,3) as area_num
  ,substring(t1.phone,9)as tail_num
  ,substring(t1.phone,-4) as tail_num
  ,substring(t1.phone from -4) as tail_num
  ,substring(t1.phone from 5 for 1) as mid_num -- 从第5位开始的第一个
  ,substring(t1.phone from 5 for 3) as mid_num 
from temp as t1
phonearea_numtail_numtail_numtail_nummid_nummid_num
123-456-78901237890789078904456
555-555-55555555555555555555555
555-123-45675554567456745671123
555-987-65435556543654365439987
555-111-22225552222222222221111
substring_index

substring_index(str, delim, count) - Returns the substring from str before count occurrences of the delimiter delim. If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned. The function substring_index performs a case-sensitive match when searching for delim.

substring_index(str, Delim,count)-返回str中的子串,然后才出现分隔符的count。如果count为正,则返回分隔符左侧的所有内容(从左侧开始计数)。如果count为负,则返回最终分隔符右侧的所有内容(从右侧开始计数)。该函数substring_index在搜索Delim时执行区分大小写的匹配。

select 
   t1.email
  ,substring_index(t1.email,'.',1) as name
  ,substring_index(t1.email,'.',-1) as com
  ,substring_index(t1.email,'@',1) as before
  ,substring_index(t1.email,'@',-1) as after
from temp as t1
emailnamecombeforeafter
john.doe@example.comjohncomjohn.doeexample.com
jane.smith@example.comjanecomjane.smithexample.com
bob.johnson@example.combobcombob.johnsonexample.com
alice.brown@example.comalicecomalice.brownexample.com
charlie.davis@example.comcharliecomcharlie.davisexample.com
SELECT substring_index('www.apache.org', '.', 2)as wangzhi
-- www.apache
字符串的长度函数 len \ length
select 
   name
  ,len(name) as l_name
  ,length(name) as l_name
from temp
namel_namel_name
John Doe88
Jane Smith1010
Bob Johnson1111
Alice Brown1111
Charlie Davis1313
字符串定位函数 instr
-- 注意细节
select 
    email
   ,instr(email,'@') as in_a
   ,len(email) as l_email
   ,substr(email,instr(email,'@')) as e_before
   ,substr(email,instr(email,'@'),len(email)) as e_before
   ,substr(email,instr(email,'@')+1,len(email)) as e_com
   ,substr(email,1,instr(email,'@')-1) as e_after
from temp
emailin_al_emaile_beforee_beforee_come_after
john.doe@example.com920@example.com@example.comexample.comjohn.doe
jane.smith@example.com1122@example.com@example.comexample.comjane.smith
bob.johnson@example.com1223@example.com@example.comexample.combob.johnson
alice.brown@example.com1223@example.com@example.comexample.comalice.brown
charlie.davis@example.com1425@example.com@example.comexample.comcharlie.davis
字符串分割 split \ split_part

split(str, regex, limit) - Splits str around occurrences that match regex and returns an array with a length of at most limit

Arguments:

  • str - a string expression to split.
  • regex - a string representing a regular expression. The regex string should be a Java regular expression.
  • limit - an integer expression which controls the number of times the regex is applied.
  • limit > 0: The resulting array’s length will not be more than limit, and the resulting array’s last entry will contain all input beyond the last matched regex.
  • limit <= 0: regex will be applied as many times as possible, and the resulting array can be of any size.

拆分(str, regex,limited)-将str拆分为与regex匹配的事件,并返回一个长度最多为限制的数组

论据:

  • str-要拆分的字符串表达式。
  • 正则表达式-表示正则表达式的字符串。正则表达式字符串应该是一个Java的正则表达式。
  • 限制-控制应用正则表达式的次数的整数表达式。
  • 限制>0:结果数组的长度不会超过限制,并且结果数组的最后一个条目将包含超过最后一个匹配正则表达式的所有输入。
  • limited<=0:正则表达式将被应用尽可能多的次数,并且生成的数组可以是任何大小。
split
select 
    email
   ,split(email,'example.') as e_before
   ,split(email,'@') as e_before
from temp12
emaile_beforee_before
john.doe@example.com[“john.doe@”,“com”][“john.doe”,“example.com”]
jane.smith@example.com[“jane.smith@”,“com”][“jane.smith”,“example.com”]
bob.johnson@example.com[“bob.johnson@”,“com”][“bob.johnson”,“example.com”]
alice.brown@example.com[“alice.brown@”,“com”][“alice.brown”,“example.com”]
charlie.davis@example.com[“charlie.davis@”,“com”][“charlie.davis”,“example.com”]
select 
    split('001_prod_7532_20230510','_',1) as e_1
   ,split('001_prod_7532_20230510','_',2) as e_2
   ,split('001_prod_7532_20230510','_',3) as e_3
 -- 但是不是我想要的形式
e_1e_2e_3
[“001_prod_7532_20230510”][“001”,“prod_7532_20230510”][“001”,“prod”,“7532_20230510”]
split_part

split_part(str, delimiter, partNum) - Splits str by delimiter and return requested part of the split (1-based). If any input is null, returns null. if partNum is out of range of split parts, returns empty string. If partNum is 0, throws an error. If partNum is negative, the parts are counted backward from the end of the string. If the delimiter is an empty string, the str is not split.

split_part(str, delimiter, partNum) -按分隔符拆分str并返回拆分的请求部分(基于1)。如果任何输入为空,则返回空。如果partNum超出分割部分的范围,则返回空字符串。如果partNum为0,则抛出错误。如果partNum为负数,则从字符串末尾开始向后计数。如果分隔符是空字符串,则不拆分该str。

-- 这下就对了
select 
    email
   ,split_part(email,'.',1) as e_before
   ,split_part(email,'.',2) as e_before
from temp12
emaile_beforee_before
john.doe@example.comjohndoe@example
jane.smith@example.comjanesmith@example
bob.johnson@example.combobjohnson@example
alice.brown@example.comalicebrown@example
charlie.davis@example.comcharliedavis@example
select 
    split_part('001_prod_7532_20230510','_',1) as e_1
   ,split_part('001_prod_7532_20230510','_',2) as e_2
   ,split_part('001_prod_7532_20230510','_',3) as e_3
e_1e_2e_3
001prod7532
去空格函数:trim \ ltrim \ rtrim

trim(str) - Removes the leading and trailing space characters from str.

trim(BOTH FROM str) - Removes the leading and trailing space characters from str.

trim(LEADING FROM str) - Removes the leading space characters from str.

trim(TRAILING FROM str) - Removes the trailing space characters from str.

trim(trimStr FROM str) - Remove the leading and trailing trimStr characters from str.

trim(BOTH trimStr FROM str) - Remove the leading and trailing trimStr characters from str.

trim(LEADING trimStr FROM str) - Remove the leading trimStr characters from str.

trim(TRAILING trimStr FROM str) - Remove the trailing trimStr characters from str.

Arguments:

  • str - a string expression
  • trimStr - the trim string characters to trim, the default value is a single space
  • BOTH, FROM - these are keywords to specify trimming string characters from both ends of the string
  • LEADING, FROM - these are keywords to specify trimming string characters from the left end of the string
  • TRAILING, FROM - these are keywords to specify trimming string characters from the right end of the string

trim(str) -从str中删除前后空格字符
trim(BOTH FROM str) -从str中删除前导和尾随空格字符。
trim(LEADING FROM str) -从str中删除前导空格字符
trim(TRAILING FROM str) -从str中删除尾随空格字符
trim(trimStr FROM str) -从str中删除前后的trimStr字符
trim(BOTH trimStr FROM str) -从str中删除开头和结尾的trinstr字符。
trim(LEADING trimStr FROM str) -从str中删除前导trimStr字符
trim(TRAILING trimStr FROM str) -从str中删除尾随的trinstr字符
参数:
•STR—字符串表达式
•trim Str -要修剪的字符串字符,默认值是一个空格

•BOTH, FROM -这些关键字用于指定从字符串的两端修剪字符串字符
•LEADING, FROM -这些关键字用于指定从字符串的左端修剪字符串字符
•TRAILING, FROM -这些关键字用于指定从字符串的右端修剪字符串字符

trim
select 
   lizi
  ,length(lizi) as l_lizi
  ,trim(lizi) as lizi1
  ,ltrim(lizi) as l_trim
  ,rtrim(lizi) as r_trim
  ,len(ltrim(lizi)) as l_trim_l
  ,len(rtrim(lizi)) as r_trim_l
  ,trim(both from lizi) as lizi2
  ,trim(LEADING from lizi) as lizi3
  ,trim(TRAILING from lizi) as lizi4
from 
(
  select ' SparkSQLHive  ' as lizi
  union all 
  select ' SparkSQLHive  ' as lizi
  union all 
  select ' SparkSQLHive  ' as lizi
  union all 
  select ' SparkSQLHive  ' as lizi
)

lizil_lizilizi1l_trimr_triml_trim_lr_trim_llizi2lizi3lizi4
SparkSQLHive15SparkSQLHiveSparkSQLHiveSparkSQLHive1413SparkSQLHiveSparkSQLHiveSparkSQLHive
SparkSQLHive15SparkSQLHiveSparkSQLHiveSparkSQLHive1413SparkSQLHiveSparkSQLHiveSparkSQLHive
SparkSQLHive15SparkSQLHiveSparkSQLHiveSparkSQLHive1413SparkSQLHiveSparkSQLHiveSparkSQLHive
SparkSQLHive15SparkSQLHiveSparkSQLHiveSparkSQLHive1413SparkSQLHiveSparkSQLHiveSparkSQLHive
select 
   lizi
  ,trim('SL' from lizi) as lizi5
  ,trim(LEADING 'SL' from lizi) as lizi6
  ,trim(TRAILING 'SL' from lizi) as lizi7
from
  (
    select 'SSparkSQLS' as lizi
  )
lizilizi5lizi6lizi7
SSparkSQLSparkSQparkSQLSSSparkSQ
补足函数:lpad \ rpad

lpad(str, len[, pad]) - Returns str, left-padded with pad to a length of len. If str is longer than len, the return value is shortened to len characters or bytes. If pad is not specified, str will be padded to the left with space characters if it is a character string, and with zeros if it is a byte sequence.

lpad(str, lenl,padl)-返回str,用pad左填充到len的长度如果str比len长,则返回值缩短为len字符或字节。如果未指定pad,如果是字符串,str将在左侧填充空格字符,如果是字节序列,则填充零。

select 
   name
  ,lpad(name,20,'20230520') as l_name
  ,rpad(name,20,'20230520') as r_name
  ,len(lpad(name,20,'20230520')) as len_name
from 
  temp12
拼接函数 concat \ concat_ws

concat

concat(col1, col2, …, colN) - Returns the concatenation of col1, col2, …, colN.

Concat (col1,col2,. a,colN)-返回 col1,col2,. ,CoIN 的串联。

concat_ws

concat_ws(sep[, str | array(str)]+) - Returns the concatenation of the strings separated by sep.

Concat _ ws (sepl,str l array (str) J +)-返回由 sep 分隔的字符串的串联

select 
  id,name
  ,concat(id,name) as id_name
  ,concat(id,'_',name) as id_name2
  ,concat_ws(id,'_',name) as id_name3
  ,concat_ws('_',id,name) as id_name4
  ,id||'_'||name as id_name5
from 
  temp12
idnameid_nameid_name2id_name3id_name4id_name5
1John Doe1John Doe1_John Doe_1John Doe1_John Doe1_John Doe
2Jane Smith2Jane Smith2_Jane Smith_2Jane Smith2_Jane Smith2_Jane Smith
3Bob Johnson3Bob Johnson3_Bob Johnson_3Bob Johnson3_Bob Johnson3_Bob Johnson
4Alice Brown4Alice Brown4_Alice Brown_4Alice Brown4_Alice Brown4_Alice Brown
5Charlie Davis5Charlie Davis5_Charlie Davis_5Charlie Davis5_Charlie Davis5_Charlie Davis
替换函数 replace \ regexp_replace

replace(str, search[, replace]) - Replaces all occurrences of search with replace.

Arguments:

  • str - a string expression

  • search - a string expression. If search is not found in str, str is returned unchanged.

  • replace - a string expression. If replace is not specified or is an empty string, nothing replaces the string that is removed from str.

replace(str, search[, replace]) -用replace替换所有搜索
参数:
•str -一个字符串表达式
•search—字符串表达式。如果在str中没有找到搜索,则返回不变的str。
•replace -一个字符串表达式。如果replace未指定或为空字符串,则不会替换从str中删除的字符串

select 
   email
  ,replace(email,'@') as e_12
  ,replace(email,'@','') as e_12
  ,replace(email,'@','#') as e_13
  ,regexp_replace(email,'@','#') as e_14
from 
  temp12
emaile_12e_12e_13e_14
john.doe@example.comjohn.doeexample.comjohn.doeexample.comjohn.doe#example.comjohn.doe#example.com
jane.smith@example.comjane.smithexample.comjane.smithexample.comjane.smith#example.comjane.smith#example.com
bob.johnson@example.combob.johnsonexample.combob.johnsonexample.combob.johnson#example.combob.johnson#example.com
alice.brown@example.comalice.brownexample.comalice.brownexample.comalice.brown#example.comalice.brown#example.com
charlie.davis@example.comcharlie.davisexample.comcharlie.davisexample.comcharlie.davis#example.comcharlie.davis#example.com
正则表达式相关函数:regexp
CREATE TABLE example_data (
  id INT,
  name VARCHAR(50),
  qq_email VARCHAR(50),
  website VARCHAR(50)
);

INSERT INTO example_data VALUES
(1, 'John Smith', 'john.smith@qq.com', 'www.example.com'),
(2, 'Jane Doe', 'john.smith@qq.com', 'www.example2.com'),
(3, 'Bob Johnson', 'bob.johnson@qq.com', 'www.example2.com'),
(4, 'Alice Brown', 'alice.brown@qq.com', 'www.example.com'),
(5, 'Charlie Green', 'alice.brown@qq.com', 'www.example.com'),
(6, 'David Lee', 'david.lee@qq.com', 'www.example2.com');
select * from example_data
idnameqq_emailwebsite
1John Smithjohn.smith@qq.comwww.example.com
2Jane Doejohn.smith@qq.comwww.example2.com
3Bob Johnsonbob.johnson@qq.comwww.example2.com
4Alice Brownalice.brown@qq.comwww.example.com
5Charlie Greenalice.brown@qq.comwww.example.com
6David Leedavid.lee@qq.comwww.example2.com
regexp
SELECT * FROM example_data 
WHERE regexp(website, '.*example2.*');
idnameqq_emailwebsite
2Jane Doejohn.smith@qq.comwww.example2.com
3Bob Johnsonbob.johnson@qq.comwww.example2.com
6David Leedavid.lee@qq.comwww.example2.com
SELECT * FROM example_data 
WHERE regexp(name, '^J.*');
idnameqq_emailwebsite
1John Smithjohn.smith@qq.comwww.example.com
2Jane Doejohn.smith@qq.comwww.example2.com
正则表达式替换函数:regexp_replace

语法: regexp_replace(string A, string B, string C)

返回值: string

**说明:**将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数

regexp_count
SELECT id, qq_email, regexp_count(qq_email, '.*qq.*') AS count
FROM example_data
WHERE regexp(qq_email, '.*qq.*')
ORDER BY count DESC;
idqq_emailcount
1john.smith@qq.com1
2john.smith@qq.com1
3bob.johnson@qq.com1
4alice.brown@qq.com1
5alice.brown@qq.com1
6david.lee@qq.com1
正则表达式解析函数:regexp_extract
SELECT qq_email, 
       regexp_extract(qq_email, '^(.+)@', 1) AS username, 
       regexp_extract(qq_email, '@(.+)$', 1) AS domain 
FROM example_data;

qq_emailusernamedomain
john.smith@qq.comjohn.smithqq.com
john.smith@qq.comjohn.smithqq.com
bob.johnson@qq.combob.johnsonqq.com
alice.brown@qq.comalice.brownqq.com
alice.brown@qq.comalice.brownqq.com
david.lee@qq.comdavid.leeqq.com
SELECT qq_email, 
       regexp_instr(qq_email, 'o') AS position 
FROM example_data
qq_emailposition
john.smith@qq.com2
john.smith@qq.com2
bob.johnson@qq.com2
alice.brown@qq.com9
alice.brown@qq.com9
david.lee@qq.com15
SELECT qq_email 
FROM example_data
WHERE regexp_like(qq_email, 'smith');
qq_email
john.smith@qq.com
john.smith@qq.com
模糊匹配函数 like / rlike
SELECT *
FROM example_data
WHERE qq_email LIKE '%smith@qq.com';
idnameqq_emailwebsite
1John Smithjohn.smith@qq.comwww.example.com
2Jane Doejohn.smith@qq.comwww.example2.com
SELECT *
FROM example_data
WHERE qq_email RLIKE 'brown';
idnameqq_emailwebsite
4Alice Brownalice.brown@qq.comwww.example.com
5Charlie Greenalice.brown@qq.comwww.example.com
字符串转大小写函数 lower \ lcase \ upper \ ucase
select 
    name
   ,lower(name) as l_name
   ,lcase(name) as l_name
   ,upper(name) as u_name
   ,ucase(name) as u_name
from example_data
namel_namel_nameu_nameu_name
John Smithjohn smithjohn smithJOHN SMITHJOHN SMITH
Jane Doejane doejane doeJANE DOEJANE DOE
Bob Johnsonbob johnsonbob johnsonBOB JOHNSONBOB JOHNSON
Alice Brownalice brownalice brownALICE BROWNALICE BROWN
Charlie Greencharlie greencharlie greenCHARLIE GREENCHARLIE GREEN
David Leedavid leedavid leeDAVID LEEDAVID LEE
json解析函数get_json_object

get_json_object(json_txt, path) - Extracts a json object from path.

get_json_object(json_txt, path) -从path中提取一个json对象

SELECT get_json_object('{"name": "John", "age": 30}', '$.name') as name;
name
John
重复字符串函数:repeat
select name,repeat(name,2) as name2
from temp12
namename2
John DoeJohn DoeJohn Doe
Jane SmithJane SmithJane Smith
Bob JohnsonBob JohnsonBob Johnson
Alice BrownAlice BrownAlice Brown
Charlie DavisCharlie DavisCharlie Davis
URL解析函数:parse_url

https://learn.microsoft.com/zh-cn/azure/databricks/sql/language-manual/functions/parse_url

> SELECT parse_url('http://spark.apache.org/path?query=1', 'HOST');
 spark.apache.org

> SELECT parse_url('http://spark.apache.org/path?query=1', 'QUERY');
 query=1

> SELECT parse_url('http://spark.apache.org/path?query=1', 'QUERY', 'query');
 1

> SELECT parse_url('http://spark.  apache.org/path?query=1', 'QUERY', 'query');
Error: Illegal argument
集合查找函数: find_in_set

find_in_set(str, str_array) - Returns the index (1-based) of the given string (str) in the comma-delimited list (str_array). Returns 0, if the string was not found or if the given string (str) contains a comma.

find_in_set(str,str_array)-返回逗号分隔列表(str_array)中给定字符串(str)的索引(基于1)。如果未找到字符串或给定字符串(str)包含逗号,则返回O。

语法: find_in_set(string str, string strList)

返回值: int

说明: 返回str在strlist第一次出现的位置,strlist是用逗号分割的字符串。如果没有找该str字符,则返回0

**使用:**select find_in_set(‘ab’,‘ef,ab,de’) from student limit 1;

2

> SELECT find_in_set(‘ab’,‘abc,b,ab,c,def’);

​ 3

字符串反转函数:reverse
select name,reverse(name) as r_name
from temp12
namer_name
John DoeeoD nhoJ
Jane SmithhtimS enaJ
Bob JohnsonnosnhoJ boB
Alice BrownnworB ecilA
Charlie DavissivaD eilrahC
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark SQL中,可以使用字符串链接函数来连接多个字符串。具体的函数是concat()。通过将多个字符串作为参数传递给concat()函数,可以将它们连接在一起。例如,可以使用以下代码将字符串"Hello"和"World"连接在一起: SELECT concat('Hello', 'World'); 这将返回"HelloWorld"作为结果。 除了concat()函数,还可以使用concat_ws()函数来连接多个字符串,并通过指定分隔符来分隔它们。例如,可以使用以下代码将字符串"Hello"、"World"和"!"连接在一起,并使用空格作为分隔符: SELECT concat_ws(' ', 'Hello', 'World', '!'); 这将返回"Hello World !"作为结果。 另外,还可以使用字符串拼接操作符"||"来连接字符串。例如,可以使用以下代码将字符串"Hello"和"World"连接在一起: SELECT 'Hello' || 'World'; 这也将返回"HelloWorld"作为结果。 总结起来,Spark SQL中有多种方法可以进行字符串链接,包括concat()函数、concat_ws()函数字符串拼接操作符。具体使用哪种方法取决于你的需求和偏好。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Spark SQL 字符串函数汇总](https://blog.csdn.net/weixin_43323871/article/details/130793751)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值