我想寫一個函數,它需要一個可變字符串並檢查第一個和最後一個字符是否爲"
字符。如果是這樣,則應將這兩個字符替換爲反碼字符`
。我想出了這個解決方案:用一個字符串中的其他ASCII字符替換某些ASCII字符的簡潔和安全的方法
fn replace_wrapping_char(s: &mut String) {
if s.len() > 1 && s.starts_with('"') && s.ends_with('"') {
unsafe {
let v = s.as_mut_vec();
v[0] = '`' as u8;
*v.last_mut().unwrap() = '`' as u8;
}
}
}
這似乎是工作(是的,'`'.is_ascii()
返回true),但是它使用unsafe
和看起來有點醜給我。
有沒有一種安全簡潔的方法來實現我想要的?
https://stackoverflow.com/questions/26544542/modifying-chars-in-a-string-by-index –
你知道,如果整個字符串將是ASCII,或者是它只保證第一個/最後一個字符可能是ASCII碼? – Shepmaster
@Shepmaster我對字符串的ascii-ness一無所知。如果第一個/最後一個字符是''',那麼它們是ascii(顯然是...),否則不能保證。 –