成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Rust字符串,讓文本處理更簡(jiǎn)單

開發(fā) 前端
ust的字符串處理既安全又靈活,而且默認(rèn)的不可變性也有助于保證代碼的健壯性。希望這個(gè)小介紹能讓你對(duì)Rust中的字符串有個(gè)初步的了解。

大家好!今天我們來聊聊Rust里面的字符串。字符串在編程中超級(jí)常見,不就是一堆字符嘛。但是在Rust里,字符串的處理方式有點(diǎn)特別,而且很有意思哦。

字符串字面量

首先,我們來聊聊字符串字面量。這玩意兒在編譯時(shí)就已經(jīng)知道值了,就像是硬編碼到變量里的一樣。字符串字面量是&str類型,它是Rust標(biāo)準(zhǔn)庫(kù)的一部分。你可以想象它就像是字符串的一個(gè)小切片。

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

輸出就是company is : Science Note location :China。

字符串對(duì)象

接下來是字符串對(duì)象String。這個(gè)東東在標(biāo)準(zhǔn)庫(kù)里面定義的,不像字符串字面量那樣是核心語言的一部分。String是一個(gè)可變、可擴(kuò)展的UTF-8編碼的字符串。你可以用它來表示運(yùn)行時(shí)提供的字符串值,它會(huì)被分配在堆上。

創(chuàng)建字符串對(duì)象

創(chuàng)建字符串對(duì)象有幾種方法:

// 創(chuàng)建一個(gè)空字符串
let empty_string = String::new();

// 從字符串字面量創(chuàng)建一個(gè)字符串對(duì)象
let content_string = String::from("ScienceNote");

字符串對(duì)象的常用方法

Rust的String對(duì)象有很多好用的方法,比如:

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

字符串對(duì)象的示例

來看看這些方法是怎么用的:

// 使用new()方法創(chuàng)建一個(gè)空字符串對(duì)象,并設(shè)置值
fn main() {
   let mut z = String::new();
   z.push_str("hello");
   println!("{}", z);
}

// 使用to_string()方法將字符串字面量轉(zhuǎn)換為字符串對(duì)象
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()方法獲取字符串的長(zhǎng)度
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);
  }
   // 存儲(chǔ)分割結(jié)果到一個(gè)Vector中
   let tokens: Vec<&str> = fullname.split(",").collect();
   println!("firstName is {}", tokens[0]);
   println!("lastname is {}", tokens[1]);
   println!("company is {}", tokens[2]);
}

// 使用chars()方法訪問字符串中的單個(gè)字符
fn main() {
   let n1 = "Science".to_string();
   for n in n1.chars() {
       println!("{} ", n);
  }
}

字符串拼接

在Rust中,你可以用+操作符來拼接兩個(gè)字符串。這個(gè)過程叫做串聯(lián)或者插值。串聯(lián)的結(jié)果是一個(gè)全新的字符串對(duì)象。

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

輸出就是ScienceNote。

類型轉(zhuǎn)換

Rust還允許你把數(shù)字轉(zhuǎn)換成字符串對(duì)象:

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

格式化字符串

還有一個(gè)叫做format!的宏函數(shù),可以用來把字符串對(duì)象拼接在一起:

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

輸出就是Science Note。

好啦,這就是Rust中字符串的一些小知識(shí)。Rust的字符串處理既安全又靈活,而且默認(rèn)的不可變性也有助于保證代碼的健壯性。希望這個(gè)小介紹能讓你對(duì)Rust中的字符串有個(gè)初步的了解。如果你對(duì)某個(gè)概念感興趣,或者想要深入了解更多,記得告訴我哦!我們下次見!


責(zé)任編輯:武曉燕 來源: 科學(xué)隨想錄
相關(guān)推薦

2010-07-21 10:05:13

Perl文本處理模塊

2013-10-30 10:35:29

Linux命令文本處理

2017-03-02 18:10:20

LinuxShell命令

2021-01-28 08:12:15

Linux命令技巧

2013-08-20 16:14:46

pythonpython文本處理

2010-01-06 17:12:26

.Net Framew

2024-09-12 17:39:27

2024-11-06 17:04:47

AWK編程

2019-10-29 09:20:48

Python文本正則表達(dá)式

2021-09-10 16:30:29

LinuxShell文本

2024-04-17 12:52:12

正則表達(dá)式C#文本處理工具

2023-10-18 07:55:41

Python字符串

2019-10-14 11:31:51

工具代碼開發(fā)

2024-09-11 17:00:36

2024-03-11 00:02:00

tr命令文本處理命令字符

2010-11-26 09:51:54

MySQL字符串

2024-10-07 09:16:13

C#字符串

2011-07-12 16:14:17

2010-06-21 09:48:43

2024-06-11 07:34:58

C#字符串性能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲精品99 | 亚洲精品欧美 | 久久久久国产一级毛片 | 欧美日韩精品一区二区三区四区 | 麻豆av在线免费观看 | 国产婷婷精品 | 久久中文字幕一区 | 亚洲国产精品成人无久久精品 | 成人片免费看 | 欧美日韩视频在线 | 国产精品久久久久久久久久 | 久久久久久久久99 | 午夜影院黄 | 国产成人久久精品 | 日韩精品久久一区二区三区 | 超碰婷婷| 黄色大片免费播放 | 国产精品欧美一区喷水 | 一区在线观看 | 九九99靖品| 亚洲伊人精品酒店 | 成人欧美一区二区三区1314 | 欧美在线免费 | 亚洲女人天堂成人av在线 | 日本欧美在线视频 | 精品一区二区三区中文字幕 | 国产一区2区| 成人黄色电影在线观看 | 久久激情av | 欧美精品一区二区在线观看 | 国产欧美一级二级三级在线视频 | 中文字幕一区二区三区四区不卡 | 草久在线视频 | h在线 | 在线播放中文字幕 | 男人的天堂亚洲 | 欧美精品二区 | 拍拍无遮挡人做人爱视频免费观看 | 日韩av在线播| 国产精品久久久乱弄 | 91久久国产综合久久 |