rust常见的骚操作

1. 将输出流转为字符类型,字符串转整形

获取一个磁盘大小:
对应shell命令:

df | grep '/dev/sdb | awk '{print $2}'

(1)对应rust代码一:

use std::process::Command;
let output = Command::new("sh").arg("-c").arg("df | grep '/dev/sdb | awk '{print $2}'").output().expect("命令异常提示");
let output_str = String::from_utf8(output.stdout);  // 将output转为字符串
let output_i32 = output_str.map_or(0,|it|it.trim().parse().unwrap_or(0));  // 将字符串数字转为i32类型

(2)对应rust代码二:

use sdt::process::Command;
let output = Command::new("sh").arg("-c").arg("df | grep '/dev/sdb | awk '{print $2}'").output().expect("命令异常提示");
let output_str = String::from_utf8(ouptput.stdout);
let u_32 = match _disk_size{
	Ok(output_str_d)=>{
		let u_32_result = output_str_d.trim().parse::<u32>();  // 要转换的类型
		match u32_result {
			Ok(u_32)=> {u_32}  // 将结果返回
			Err(err)=>{0}
		}
	}
	Err(err)=>{0}
}
println("要获取的结果为:{}",u_32);

2. rust整形转字符串

let t_num = 123456;  // i32
let t_str = t_num.to_string();  // 转字符串

3.rust字符串转整形

方法一:

let do_str = String::from("1234565");
let i_32_ = do_str.parse::<u32>().unwrap();  // 转u32,如果转失败,程序就直接挂掉

方法二:

let do_str = String::from("123456");
let str_u32_result = do_str.parse::<u32>();  // 返回:Result
let u_32_ = match str_u32_result{
   Ok(u_32)=>{   // 处理正常的u32
   		u_32
   }
   Err(err)=>{ // 处理异常的ParselntError,如果失败,返回0(可以定义其它u32类型值)
        0
   } 
}

你可能感兴趣的:(rust,rust)