106.10.12 rust 字串處理

輸入String
使用 text_io (真心覺得這個很好用,可不只用在字串
在 Cargo.toml 的 [dependencies] 下方加上
text_io = "0.1.6"

main.rs的最上方記得加上
#[macro_use] extern crate text_io;

再來就可以用類似 C 的方式輸入
let s: String;
scan!("{}\n", s);



String走訪 [遊樂場] [參考]
有兩種:加上.enumerate()會同時有一個 i 當作 index 使用
for (i, c) in "hello".chars().enumerate() {
    println!("{}: {}", i, c)
}
for c in "hello".chars() {
    println!("{}~~", c)
}


String轉成&str [遊樂場] [參考]
let s1 = String::from("hello"); // String
let s2 = &s1[..]; // &str


&str轉成String [遊樂場]
let s1 = "hello"; // &str
let s2 = String::from(s1); // String


String轉成數字 [遊樂場]
let s = String::from("87");
let a = s.parse::<i32>().unwrap();


部分String轉成數字 [遊樂場]
let s = String::from("878787");
let a = s[2..4].parse::<i32>().unwrap();


數字轉成String [遊樂場]
let a = 87;
let s = a.to_string();


String取得第n個char [遊樂場] [參考]
let s = String::from("hello");
let c = s.chars().nth(1).unwrap();


String反轉 [遊樂場] [參考]
在做 8-bit 加減法器時因為每一 bit 處理完後是用 push_str() 到一個 String 的後方
所以 8 個都完成後需要反轉
let s = String::from("你好~ OuO");
let r1: String = s.chars().rev().collect();
let r2 = s.chars().rev().collect::<string>();


參考資料:
How do you iterate over a string by character
How to convert String into &'static str
Getting a single character out of a string

沒有留言:

張貼留言

^ Top