【GEE笔记7】文本ee.String

15 篇文章 16 订阅

GEE有很多类型的数据

  • String
  • Number
  • Array
  • List
  • Dictionary
  • Geometry
  • Feature
  • FeatureCollection
  • Image
  • ImageCollection
  • 各种卫星数据

本文主要介绍ee.String

ee.String有以下指令内容

  1. 显示 print(string)
  2. 创建 ee.String()
  3. 连接 ee.String.cat()
  4. 替换 ee.String.replace()
  5. 匹配 ee.String.match()
  6. 切片 ee.String.slice()
  7. 对比 ee.String.compareTo/ee.String.equals
  8. 链式调用 ee.String.aside
  9. 文本位置搜索 ee.String.index
  10. 文本长度测量 ee.String.length()
  11. 正则表达式分割 ee.String.split()
  12. 删除空格和转义字符 ee.String.trim
  13. 大小写转换 ee.String.toUpperCase/ee.String.toLowerCase
  14. JSON的编码和解码 ee.String.encodeJSON/ee.String.decodeJSON

1. 显示 print(string)

var string = ee.String('Hellow World !')
print(string)

2. 创建 ee.String()

构造一个新的字符串。

  • 用法
ee.String(string)
  • 案例
print(ee.String('I am a string'));  // I am a string

// Strings can use emoji.
print(ee.String('🧲⚡️👀'));  // 🧲⚡️👀

// Empty string.
var empty = ee.String('');
print(empty);  // ''
print(empty.length());  // 0

3. 连接 ee.String.cat()

连接两个字符串。

  • 用法
String.cat(string2)
  • 案例
print(ee.String('cat').cat(' bird'));  // 'cat bird'

4. 替换 ee.String.replace()

返回一个替换了模式的部分或全部匹配的新字符串。

  • 用法
String.replace(regex, replacement, flags)
  • 案例
print(ee.String('abc-abc').replace('abc', 'X'));  // X-abc
print(ee.String('abc-abc').replace('abc', 'X', 'g'));  // X-X
print(ee.String('abc-abc').replace('abc', '', 'g'));  // -
print(ee.String('aBc-Abc').replace('abc', 'Z', 'i'));  // Z-Abc
print(ee.String('aBc-Abc').replace('abc', 'Z', 'ig'));  // Z-Z

5. 匹配 ee.String.match()

将字符串与正则表达式匹配。返回匹配字符串的列表。

  • 用法
String.match(regex, flags) // 正则表达式,标志
  • 案例
var s = ee.String('ABCabc123');
print(s.match(''));  // ""
print(s.match('ab', 'g'));  // ab
print(s.match('ab', 'i'));  // AB
print(s.match('AB', 'ig')); // ["AB","ab"]
print(s.match('[a-z]+[0-9]+'));  // "abc123"
print(s.match('\\d{2}'));  // "12"

// Use [^] to match any character except a digit.
print(s.match('abc[^0-9]', 'i'));  // ["ABCa"]

6. 切片 ee.String.slice()

返回给定字符串的子字符串。如果指定的范围超过了字符串的长度,则返回一个较短的子字符串。
如果开始值为负数,那么就倒数。

  • 用法
String.slice(start, end) // 开头,结尾
  • 案例
print(ee.String('').slice(0));  // '' 全部输出
print(ee.String('').slice(-1));  // '' 全部输出

var s = ee.String('abcdefghijklmnopqrstuvwxyz');
print(s.slice(0));  // abcdefghijklmnopqrstuvwxyz
print(s.slice(24));  // yz
print(s.slice(-3));  // xyz
print(s.slice(3, 3));  // ''
print(s.slice(2, 3));  // c
print(s.slice(-4, 25)); // wxy

7. 对比 ee.String.compareTo/ee.String.equals

  • 比较字符串的大小 ee.String.compareTo
    按字典顺序比较两个字符串。返回: 如果两个字符串在字典上相等,则值为 0;如果 string1 小于 string2,则值小于 0;如果 string1 按字典顺序大于 string2,则值大于 0。

  • 用法

String.compareTo(string2)
  • 案例
print(ee.String('a').compareTo('b'));  // -1
print(ee.String('a').compareTo('a'));  // 0
print(ee.String('b').compareTo('a'));  // 1

print(ee.String('a').compareTo(ee.String('b')));  // -1
  • 比较字符串是否相等ee.String.equals
    检查字符串是否与给定对象相等。如果目标是一个字符串并且在字典上等于引用,则返回 true,否则返回 false。

  • 用法

String.equals(target)
  • 案例
var sp = ee.String('Abies grandis');

print('"Abies grandis" equals "Abies grandis"?', sp.equals('Abies grandis'));
print('"Abies grandis" equals "abies grandis"?', sp.equals('abies grandis'));
print('"Abies grandis" equals "Thuja plicata"?', sp.equals('Thuja plicata'));

在这里插入图片描述

8. 链式调用 ee.String.aside

调用一个函数,将此对象作为第一个参数传递,并返回自身。

  • 用法
String.aside(func, var_args)
  • 案例
// aside with no var_args.
// a
ee.String('a').aside(print);

// foo
// bar
ee.String('foo').aside(print, 'bar');

// foo
// bar
//
// foo
print(ee.String('foo').aside(print, 'bar'));

// aside in the middle of a chain of calls.
// a
// b
//
// ac
print(ee.String('a').aside(print, 'b').cat('c'));

// aside with more than one var_args.
// a
// 1
// 2
ee.String('a').aside(print, 1, 2);

// Print a empty JSON string.
// ''
ee.String('').aside(print);

在这里插入图片描述

9. 文本位置搜索 ee.String.index

在字符串中搜索第一次出现的子字符串。返回第一个匹配的索引的位置,或 -1(搜不到)

  • 用法
String.index(pattern)
  • 案例
print(ee.String('abc123').index(''));  // 0
print(ee.String('abc123').index('c1'));  // 2
print(ee.String('abc123').index('ZZ'));  // -1
print(ee.String('abc123').index('3'));  // 5

10. 文本长度测量 ee.String.length()

返回字符串的长度。
数字、字母、汉字、符号均为1个字节。

  • 用法
String.length()
  • 案例
print(ee.String('').length());  // 0
print(ee.String('abc123').length());  // 6
print(ee.String('紫阳大道').length());  // 4
print(ee.String('紫阳大道99#').length());  // 7

11. 正则表达式分割 ee.String.split()

在正则表达式上拆分字符串,返回字符串列表。

  • 用法
String.split(regex, flags) // 正则表达式,标志
  • 案例
var s = ee.String('aBAbcD');
print(s.split('Ab')); // ["aB","cD"]
// 'i' tells split to ignore case.
print(s.split('ab', 'i')); // ["","","cD"]
// Split on 'b' or 'c'
print(s.split('[bc]', 'i')); // ["a","A","","D"]
// Split on 'BA' or 'c'
print(s.split('(BA|c)')); // ["a","b","D"]

var s = ee.String('a,b,cdee f,g');
// ["a",",","b",",","c","d","e","e"," ","f",",","g"]
print(s.split(''));

print(s.split(' ')); // ["a,b,cdee","f,g"]
print(s.split('[[:space:]]')); // ["a,b,cdee","f,g"]

print(s.split(',')); // ["a","b","cdee f","g"]

print(s.split('ee')); // ["a,b,cd"," f,g"]

// Split on any lower case letter.
print(s.split('[a-z]')); // ["",",",",","","",""," ",","]

// ^ as the first character in [] excludes.
print(s.split('[^a-z]')); // ["a","b","cdee","f","g"]

// Splitting on characters that are special to split.
var s = ee.String('a.b*c?d');
print(s.split('\\.')); // ["a","b*c?d"]
print(s.split('[*]')); // ["a.b","c?d"]
print(s.split('[?]')); // ["a.b*c","d"]

12. 删除空格和转义字符 ee.String.trim

返回一个字符串,其值为原始字符串,删除了任何前导和尾随空格。
\t \r \n都是转义字符:
\t 是横向跳到下一制表符位置(前进四格)
\r 是回车
\n 是换行。
空格就是单纯的空格。

  • 用法
String.trim()
  • 案例
var s = ee.String('\t\n\r abc\t\n\r ');
print(s.trim());  // "abc"

var s = ee.String(' a\t\n\r b ');
print(s.trim());  // "a\t\n\r b"
var s = ee.String(' a\t b ');
print(s.trim());  // "a\t b"
var s = ee.String(' a\n b ');
print(s.trim());  // "a\n b"
var s = ee.String(' a\r b ');
print(s.trim());  // "a\r b"

在这里插入图片描述

13. 大小写转换 ee.String.toUpperCase/ee.String.toLowerCase

  • 将字符串中的所有字符转换为大写。 ee.String.toUpperCase
  • 用法
String.toUpperCase()
  • 案例
var s = ee.String('AaBbCc123');
print(s.toUpperCase());  // AABBCC123
var s = ee.String('紫阳大道99#');
print(s.toUpperCase());  // 紫阳大道99#
  • 将字符串中的所有字符转换为小写。 ee.String.toLowerCase
  • 用法
String.toLowerCase()
  • 案例
var s = ee.String('AaBbCc123');
print(s.toLowerCase());  // aabbcc123

14. JSON的编码和解码 ee.String.encodeJSON/ee.String.decodeJSON

  • 将对象编码为 JSON。支持原语、列表和字典。ee.String.encodeJSON
  • 用法
ee.String.encodeJSON(object)
  • 案例
print('JSON-encoded ee.String',
      ee.String.encodeJSON(ee.String('earth')));  // "\"earth\""

print('JSON-encoded ee.Number',
      ee.String.encodeJSON(ee.Number(1)));  // "1"

print('JSON-encoded ee.List',
      ee.String.encodeJSON(ee.List([1, 2, 3])));  // "[1,2,3]"

print('JSON-encoded ee.Dictionary',
      ee.String.encodeJSON(ee.Dictionary({lc_name: 'grassland', lc_class: 3})));
// "{\"lc_class\":3,\"lc_name\":\"grassland\"}"
  • 解码 JSON 字符串。 ee.String.decodeJSON
  • 用法
String.decodeJSON()
  • 案例
var data = ee.Dictionary(ee.String('{"a": "abc", "b": 1}').decodeJSON());
print(data);
print(data.get('a'));

参考:
GEE Reference ee.String
第4节:GEE的数据类型 (String, Number)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vigo*GIS_RS

来瓶可乐~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值