字符串,GEE上跳舞的线!
GEE学习之路漫长,跟着小编一起走进今天的数据类型的学习。字符串是各大编程语言的常用数据类型,我们今天需要了解GEE平台上字符串的定义、以及常用的方法。
1.定义字符串
//字符串构造
var base_str = "Practice makes perfect!";
var str1 = ee.String(base_str);
print("str1:",str1);
定义字符串比较简单,采用ee.String即可定义任意给定的字符串。此处小编定义了一个英文字符串,含义为“熟能生巧”,也希望各位看到文章的同学们不骄不躁,多多练习,自然就熟悉。
2.获取字符串长度
小编想知道这句英文谚语一共多长呢?此时需要用到.length()方法,该方法能够获取指定字符串的长度,最后返回数值结果。
//计算字符串的长度
var len = str1.length();
print("length:",len);
最后的答案是23。
3.字符串拼接
和实践有关的谚语有很多,比如实践出真知,小编想把它和前面的这句合在一起,应该如何实现呢?
//拼接字符串
var str2 = ee.String("Practice brings true knowledge");
var str3 = str1.cat(" ").cat(str2);//注意两句中间加空格
print("str3:",str3);
拼接字符串需要用到cat方法,此处小编重新定义了一个字符串用以表示实践出真知,接着按顺序调用cat方法,注意哦,两句话中间要有个空格号,小编贴心地在两者中间用cat(” “)进行添加。以使得最后的结果符合实际要求。
4.字符串替换
小编觉得实践出真知没错,但实践需要日复一日的勤奋坚持,小编想说勤奋出真知,能不能在不改动其他字符的情况下,单独将实践替换成勤奋呢?
//替换字符串,想把实践出真知改成勤奋出真知,Practice→Diligence
var str4 = str2.replace("Practice","Diligence");
print("str4:",str4);
字符串替换要用的方法是replace方法,该方法有两个参数,第一个参数为要替换的原字符串,第二个字符串为替换后的字符串,一步到位,得出答案。
5.字母大小写转换
两句话都出现了大小写,有大有小的,能不能把字符串全部转化成大写的,或者是全部是小写,这样看着小编更舒服呀
//字母变大小写
var str5 = str1.toUpperCase();//全部大写
var str6 = str1.toLowerCase();//全部小写
print("str5:",str5);
print("str6:",str6);
字符串的大小写转换也是常用的工具之一,这里我们要介绍一字符串里封装的一对双胞胎方法,大哥叫toUpperCase,它的功能是将字符串全部转化成大写,“RACTICE MAKES PERFECT”就是它的杰作,弟弟叫toLowerCase,它的功能是将字符串全部转化成小写,看,最后的结果变成了“practice makes perfect!”
6.获取子字符串
一句话好长啊,好费劲,小编想从里面按顺序挑出几个字母供读者们欣赏,要怎么实现呢?
//获取子字符串
var str7 = str2.slice(1,6);//得到索引号从1到6的字符串,注意字符串的索引号从0开始
print("str7:",str7);
有时我们需要从一句完整的代码语言中提取出某些关键词,以便后续操作,这里就要用到slice方法了,slice俗称切片,它可以根据指定的索引号,按照索引号顺序提取出子字符串。此处小编给定的索引号范围是1到6,结果将提取索引号为1~6的的子字符串即“racti”。
7.分割字符串
这句话由哪些单词组成呢?能不能将字符串按照一个完整的词进行分割?
//分割字符串
var str8 = str2.split(" ");
print("str8:",str8);
分割字符串用split方法,此处小编通过指定分割的断点符为空号,这样一句完整的话变成了若干个单词,形成一个单独的列表进行输出:
8.获取索引号
为了得出特定子字符串的索引号,以便提取出小编想要的子字符串,小编应该做什么?
//获取指定子字符串在原始字符串中的起始位置索引号
var index1 = str1.index("makes");
print("index1:",index1);
var index2 = str1.index("brings");
print("index2:",index2);
//指定子字符串在字符串中最后一次出现的索引位置
var index3 = str2.rindex("e");
print("index3:",index3);
这里要介绍另一对双胞胎了。index和rindex。
index里参数是需要查找索引号的字符串,它会返回子字符串在原始字符串中的起始位置,index1指定查找makes的开头索引号,结果为字母m对应的索引号,若源字符串并未出现指定字符串,则结果返回-1,如index2最后的结果返回值为-1。
rindex比较神奇,返回指定子字符串在字符串中最后一次出现的索引位置。rindex()方法与index()方法类似,但是它从字符串的末尾开始搜索。此时小编想查找“practice makes perfect”中e字母最后一次出现的位置,结果返回29,表示为末尾fect中的e。
9.在字符串中查找与指定正则表达式匹配的内容
除了slice,是否有别的方法能够获取指定字符串?
var str9 = "Practice makes perfect,Practice brings true knowledge!";
var pattern1 = /makes/;
var pattern2 = /Practice/g;//获取字符串中所有出现的指定子字符串
var result1 = str9.match(pattern1);
var result2 = str9.match(pattern2);
print("Result1:",result1);
print("Result2:",result2);
这里就不得不提到match方法了,GEE字符串中的match方法用于在字符串中查找与指定正则表达式匹配的内容。
在上面的例子中,小编重新定义了一个字符串str9,然后使用正则表达式/makes作为参数调用了match方法。match方法会返回一个数组,其中包含了与正则表达式匹配的内容。如果没有找到匹配的内容,则返回null。
在这个例子中,result的值将会是一个数组["makes"],因为字符串中的"makes"与正则表达式匹配。如果我们想要查找字符串中所有匹配的内容,可以在正则表达式中使用全局标志"g",如本例子小编想查找语句中重复出现的practice。
最后的结果如下:
关于常用的GEE的字符串的表达到这里就结束了,希望对大家学习GEE或者是JavaScript有帮助,不要忘记动动小指头,帮忙点个赞哟!
更多内容,欢迎关注小编的公众号“梧桐凉月”,谢谢!咱们下期再会。