日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Rust字符串,讓文本處理更簡單

來源: 責編: 時間:2024-04-12 17:31:09 191觀看
導讀大家好!今天我們來聊聊Rust里面的字符串。字符串在編程中超級常見,不就是一堆字符嘛。但是在Rust里,字符串的處理方式有點特別,而且很有意思哦。字符串字面量首先,我們來聊聊字符串字面量。這玩意兒在編譯時就已經知道值了

大家好!今天我們來聊聊Rust里面的字符串。字符串在編程中超級常見,不就是一堆字符嘛。但是在Rust里,字符串的處理方式有點特別,而且很有意思哦。jcJ28資訊網——每日最新資訊28at.com

字符串字面量

首先,我們來聊聊字符串字面量。這玩意兒在編譯時就已經知道值了,就像是硬編碼到變量里的一樣。字符串字面量是&str類型,它是Rust標準庫的一部分。你可以想象它就像是字符串的一個小切片。jcJ28資訊網——每日最新資訊28at.com

fn main() {   let company: &str = "Science Note";   let location: &str = "China";   println!("company is : {} location :{}", company, location);}

輸出就是company is : Science Note location :China。jcJ28資訊網——每日最新資訊28at.com

字符串對象

接下來是字符串對象String。這個東東在標準庫里面定義的,不像字符串字面量那樣是核心語言的一部分。String是一個可變、可擴展的UTF-8編碼的字符串。你可以用它來表示運行時提供的字符串值,它會被分配在堆上。jcJ28資訊網——每日最新資訊28at.com

創建字符串對象

創建字符串對象有幾種方法:jcJ28資訊網——每日最新資訊28at.com

// 創建一個空字符串let empty_string = String::new();// 從字符串字面量創建一個字符串對象let content_string = String::from("ScienceNote");

字符串對象的常用方法

Rust的String對象有很多好用的方法,比如:jcJ28資訊網——每日最新資訊28at.com

  • new():創建一個新的空字符串。
  • to_string():把一個值轉換成字符串。
  • replace():替換字符串中的模式。
  • as_str():提取一個包含整個字符串的字符串切片。
  • push():在字符串末尾追加一個字符。
  • push_str():在字符串末尾追加一個字符串切片。
  • len():返回字符串的長度,以字節為單位。
  • trim():去除字符串前后的空白字符。
  • split_whitespace():通過空白字符分割字符串,并返回一個迭代器。
  • split():通過指定的模式分割字符串,并返回一個迭代器。

字符串對象的示例

來看看這些方法是怎么用的:jcJ28資訊網——每日最新資訊28at.com

// 使用new()方法創建一個空字符串對象,并設置值fn main() {   let mut z = String::new();   z.push_str("hello");   println!("{}", z);}// 使用to_string()方法將字符串字面量轉換為字符串對象fn main() {   let name1 = "Hello ScienceNote , Hello!".to_string();   println!("{}", name1);}// 使用replace()方法替換字符串中的模式fn main() {   let name1 = "Hello ScienceNote , Hello!".to_string();   // 找到并替換所有的"Hello"   let name2 = name1.replace("Hello", "Howdy");   println!("{}", name2);}// 使用as_str()方法提取字符串切片fn main() {   let example_string = String::from("example_string");   print_literal(example_string.as_str());}fn print_literal(data: &str) {   println!("displaying string literal {}", data);}// 使用push()方法在字符串末尾追加字符fn main() {   let mut company = "Tutorial".to_string();   company.push('s');   println!("{}", company);}// 使用push_str()方法在字符串末尾追加字符串切片fn main() {   let mut company = "Science".to_string();   company.push_str(" Note");   println!("{}", company);}// 使用len()方法獲取字符串的長度fn main() {   let fullname = " Science Note";   println!("length is {}", fullname.len());}// 使用trim()方法去除字符串前后的空白字符fn main() {   let fullname = " Science Note /r/n";   println!("Before trim");   println!("length is {}", fullname.len());   println!();   println!("After trim");   println!("length is {}", fullname.trim().len());}// 使用split_whitespace()方法通過空白字符分割字符串fn main() {   let msg = "Science Note has good t utorials".to_string();   let mut i = 1;   for token in msg.split_whitespace() {       println!("token {} {}", i, token);       i += 1;  }}// 使用split()方法通過指定的模式分割字符串fn main() {   let fullname = "Kannan,Sudhakaran,ScienceNote";   for token in fullname.split(",") {       println!("token is {}", token);  }   // 存儲分割結果到一個Vector中   let tokens: Vec<&str> = fullname.split(",").collect();   println!("firstName is {}", tokens[0]);   println!("lastname is {}", tokens[1]);   println!("company is {}", tokens[2]);}// 使用chars()方法訪問字符串中的單個字符fn main() {   let n1 = "Science".to_string();   for n in n1.chars() {       println!("{} ", n);  }}

字符串拼接

在Rust中,你可以用+操作符來拼接兩個字符串。這個過程叫做串聯或者插值。串聯的結果是一個全新的字符串對象。jcJ28資訊網——每日最新資訊28at.com

fn main() {   let n1 = "Science".to_string();   let n2 = "Note".to_string();   let n3 = n1 + &n2; // 傳遞n2的引用   println!("{} ", n3);}

輸出就是ScienceNote。jcJ28資訊網——每日最新資訊28at.com

類型轉換

Rust還允許你把數字轉換成字符串對象:jcJ28資訊網——每日最新資訊28at.com

fn main() {   let number = 2020;   let number_as_string = number.to_string();   println!("{} ", number_as_string);   println!("{} ", number_as_string == "2020");}

格式化字符串

還有一個叫做format!的宏函數,可以用來把字符串對象拼接在一起:jcJ28資訊網——每日最新資訊28at.com

fn main() {   let n1 = "Science".to_string();   let n2 = "Note".to_string();   let n3 = format!("{} {}", n1, n2);   println!("{} ", n3);}

輸出就是Science Note。jcJ28資訊網——每日最新資訊28at.com

好啦,這就是Rust中字符串的一些小知識。Rust的字符串處理既安全又靈活,而且默認的不可變性也有助于保證代碼的健壯性。希望這個小介紹能讓你對Rust中的字符串有個初步的了解。如果你對某個概念感興趣,或者想要深入了解更多,記得告訴我哦!我們下次見!jcJ28資訊網——每日最新資訊28at.com


jcJ28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-83279-0.htmlRust字符串,讓文本處理更簡單

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 前端神器AbortController:深度解析與實戰應用

下一篇: C# 中優雅的動態序列化接口返回數據

標簽:
  • 熱門焦點
  • 小米官宣:2023年上半年出貨量中國第一!

    今日早間,小米電視官方微博帶來消息,稱2023年小米電視上半年出貨量達到了中國第一,同時還表示小米電視的巨屏風暴即將開始。“公布一個好消息2023年#小米電視上半年出貨量中國
  • 石頭自清潔掃拖機器人G10S評測:多年黑科技集大成之作 懶人終極福音

    科技圈經常能看到一個詞叫“縫合怪”,用來形容那些把好多功能或者外觀結合在一起的產品,通常這樣的詞是貶義詞,但如果真的是產品縫合的好、縫合的實用的話,那它就成了中性詞,今
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實現了一個流處理程序
  • SpringBoot中使用Cache提升接口性能詳解

    環境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對 Spring 應用程序提供了透明式添加緩存的支持。和事務支持一樣,抽象緩存允許一致地使用各
  • 自律,給不了Keep自由!

    來源 | 互聯網品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺Keep正式登陸港交所,努力
  • 三星電子Q2營收60萬億韓元 存儲業務營收同比仍下滑超過50%

    7月27日消息,據外媒報道,從三星電子所發布的財報來看,他們主要利潤來源的存儲芯片業務在今年二季度仍不樂觀,營收同比仍在大幅下滑,所在的設備解決方案
  • iQOO Neo8 Pro真機諜照曝光:天璣9200+和V1+旗艦雙芯加持

    去年10月,iQOO推出了iQOO Neo7系列機型,不僅搭載了天璣9000+,而且是同價位唯一一款天璣9000+直屏旗艦,一經上市便受到了用戶的廣泛關注。在時隔半年后,
  • 蘋果140W USB-C充電器:采用氮化鎵技術

    據10 月 30 日 9to5 Mac 消息報道,當蘋果推出新的 MacBook Pro 2021 時,該公司還推出了新的 140W USB-C 充電器,附贈在 MacBook Pro 16 英寸機型的盒子里,也支
Top 主站蜘蛛池模板: 泌阳县| 凤翔县| 大港区| 临沭县| 绩溪县| 通渭县| 巴塘县| 九龙坡区| 自治县| 习水县| 上杭县| 鄂伦春自治旗| 赣州市| 中山市| 四子王旗| 贵德县| 锡林郭勒盟| 都匀市| 曲麻莱县| 舒兰市| 宜都市| 开江县| 南华县| 汉中市| 达日县| 嵩明县| 嘉禾县| 盐源县| 黄梅县| 合山市| 弋阳县| 虎林市| 斗六市| 阿瓦提县| 千阳县| 镇赉县| 望城县| 富平县| 扶沟县| 静宁县| 灌南县|