Rust - String

7490 ワード

https://www.tutorialspoint.com/rust/rust_string.htm
TrustのStringデータ型は2種類に分けられます.
  • 文字列テキスト(&str)
  • 文字列オブジェクト(文字列)
  • String Literal


    文字列テキスト(&str)コンパイル時に文字列値を知るために使用
    文字列テキストは、変数のハードコーディング文字セットです.
    fn main() {
       let company:&str="TutorialsPoint";
       let location:&str = "Hyderabad";
       println!("company is : {} location :{}",company,location);
    }

    String Object


    文字列オブジェクトのフォーマットは、標準ライブラリから提供されます.
    文字列文字とは異なり、文字列オブジェクトタイプは言語コアの一部ではありません.
    標準ライブラリpub struct Stringで共通構造体として定義
    文字列オブジェクトは、延長可能なコレクションオブジェクトです.
    UTF-8に変更可能かつ符号化
    実行時に使用できる文字列
    hipに割り当てられた

    Syntax


    空の文字列の生成
    String::new()
    文字列のコピー
    String::from()
    fn main(){
       let empty_string = String::new();
       println!("length is {}",empty_string.len());
    
       let content_string = String::from("TutorialsPoint");
       println!("length is {}",content_string.len());
    }

    Common Methods - String Object


    Sr.No.M e t h o d S ignatureDescription 1 new()pub const fn new()->String空文字列2 to string(&self)->String所与の値を文字列3 replace()fn replace<'aに変換し、P>(&'a self、:P,:&str)->Stringモードのすべての一致項目を別の文字列4 as str()pubfnas str(&self)->&str抽出文字列全体を含む文字列断片5 push(&mut self,ch:char)指定した文字を文字列の末尾の6 push str(&mutself,str)に追加->usize文字列の長さ(バイト単位)8 trim()pubfn trim(&self)->&str前後のスペースの文字列は、9 split whitespace(&self)->SplitWhitesapce文字列のスペース(&self)->Split(pubfn split<'a,P>Split<'charまたはセパレータの11 chars()pub fn chars(&self)->Chars文字列の文字の重複文字であってもよい

    new()


    new()関数は空の文字列を生成します
    fn main(){
       let mut z = String::new();
       z.push_str("hello");
       println!("{}",z);
    }

    to_string()


    Stringオブジェクトのすべてのメソッドにアクセスするには、to string()関数を使用して文字列テキストをオブジェクトタイプに変換します.
    fn main(){
       let name1 = "Hello TutorialsPoint , 
       Hello!".to_string();
       println!("{}",name1);
    }

    replace()


    replace()関数には2つのパラメータが使用されます
    最初のパラメータは、検索する文字列モードです.
    2番目のパラメータは、置換する新しい値です.
    fn main(){
       let name1 = "Hello TutorialsPoint , 
       Hello!".to_string();         //String object
       let name2 = name1.replace("Hello","Howdy");    //find and replace
       println!("{}",name2);
    }

    as_str()


    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()


    push()関数は、指定されたcharを文字列の末尾に追加します.
    fn main(){
       let mut company = "Tutorial".to_string();
       company.push('s');
       println!("{}",company);
    }

    push_str()


    push str()関数は、指定された文字列スライスを文字列の末尾に追加します.

    len()


    len()関数は、文字列の合計文字数(スペースを含む)を返します.

    trim()


    trim()関数文字列から前スペースと後スペースを削除
    行のスペースを削除しない
    fn main() {
       let fullname = " Tutorials Point \r\n";
       println!("Before trim ");
       println!("length is {}",fullname.len());
       println!();
       println!("After trim ");
       println!("length is {}",fullname.trim().len());
    }

    split_whitespace()


    split whitespace()関数は、入力文字列を他の文字列に分割することによって重複文字を返します.
    fn main(){
       let msg = "Tutorials Point has good t
       utorials".to_string();
       let mut i = 1;
       
       for token in msg.split_whitespace(){
          println!("token {} {}",i,token);
          i+=1;
       }
    }

    split()


    split()関数は、文字列シート内のモードに一致する文字で区切られたサブ文字列の重複文字を返します.
    split()関数の制限は、後で使用するために結果を保存できません.
    collect関数を使用してsplit()で返された結果をベクトルとして保存
    fn main() {
       let fullname = "Kannan,Sudhakaran,Tutorialspoint";
    
       for token in fullname.split(","){
          println!("token is {}",token);
       }
    
       //store in a Vector
       println!("\n");
       let tokens:Vec<&str>= fullname.split(",").collect();
       println!("firstName is {}",tokens[0]);
       println!("lastname is {}",tokens[1]);
       println!("company is {}",tokens[2]);
    }

    chars()


    charsメソッドを使用して文字列内の単一文字にアクセス
    fn main(){
       let n1 = "Tutorials".to_string();
    
       for n in n1.chars(){
          println!("{}",n);
       }
    }

    Concatenation of Strings with + operator


    文字列値は他の文字列に追加できます
    文字列接続の結果、新しい文字列オブジェクト
    +演算子addメソッドを内部で使用
    //add function
    add(self,&str)->String { 
       // returns a String object
    }
    fn main(){
       let n1 = "Tutorials".to_string();
       let n2 = "Point".to_string();
    
       let n3 = n1 + &n2; // n2 reference is passed
       println!("{}",n3);
    }

    Type Casting

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

    Format! Macro


    Stringオブジェクトに追加する別の方法はformatというマクロ関数を使用することです.
    fn main(){
       let n1 = "Tutorials".to_string();
       let n2 = "Point".to_string();
       let n3 = format!("{} {}",n1,n2);
       println!("{}",n3);
    }