Jak przekonwertować Vec<char>
na ciąg znaków, aby móc go wydrukować?Jak przekonwertować Vec <char> na ciąg znaków
Odpowiedz
Ta odpowiedź była poprawna, gdy została zapisana, ale jest już nieaktualna (from_chars
nie istnieje, a std::strbuf::StrBuf
jest teraz tylko String
), więc nie ma potrzeby zgłaszania. Spójrz na odpowiedź Vladimira Matveva (i przegłosuj) poniżej.
std::str::from_chars(char_vector.as_slice()); // creates a ~str
char_vector.iter().map(|c| *c).collect::<std::strbuf::StrBuf>();
Docs: std::str::from_chars
(Te ostatnie mogą być wykorzystywane do zbierania na ~str
też, po prostu zmieniając wskazówkę StrBuf
typ.)
Gdy odpowiedź nie jest aktualna, logiczne jest, aby ją głosować. Zaktualizuj swoją odpowiedź, aby przerwać głosowanie. – Stargateur
Uaktualnienie odpowiedzi będzie wymagać uznania/głosów od Vladimira. – huon
Możesz zaktualizować odpowiedź wskazując odpowiednie wersje Rusta. – courteouselk
Aktualizacja dla Rust 1,0
Bardzo proste, wystarczy użyć collect()
na iteracyjnej:
let v = vec!['a', 'b', 'c', 'd'];
let s: String = v.into_iter().collect();
println!("{}", s);
Oryginalny wektor zostanie skonsumowane. Jeśli trzeba je zachować, należy v.iter().cloned()
:
let s: String = v.iter().cloned().collect();
Nie ma bardziej bezpośredni sposób, ponieważ char
jest 32-bitowa wartość skalarna Unicode i ciągi w Rust są sekwencje bajtów (u8
) reprezentujący tekst w UTF- 8 kodowania. Nie mapują bezpośrednio do sekwencji char
s.
Tutaj jest bardziej czytelna wersja zużywa wektor:
use std::iter::FromIterator;
fn main() {
let v = vec!['a', 'b', 'c', 'd'];
let s = String::from_iter(v);
// vs
let s: String = v.into_iter().collect();
}
Pamiętaj, że collect
jest realizowany z wezwaniem do FromIterator::from_iter
:
fn collect<B: FromIterator<Self::Item>>(self) -> B where Self: Sized {
FromIterator::from_iter(self)
}
- 1. Jak przekonwertować ciąg znaków na znak Unicode?
- 2. Jak przekonwertować ciąg znaków na obiekt BinaryExpression?
- 3. Jak przekonwertować boolean na zlokalizowany ciąg znaków
- 4. Jak przekonwertować zwrot WebResponse.GetResponseStream na ciąg znaków?
- 5. Jak przekonwertować ciąg znaków na liczbę dziesiętną?
- 6. Jak przekonwertować część tablicy znaków na ciąg znaków
- 7. Jak przekonwertować ArrayList na ciąg znaków (ciąg []) w C#
- 8. Jak przekonwertować ciąg znaków szesnastkowy na ciąg bajtów w Perlu?
- 9. Potrzebuję przekonwertować ciąg znaków XML na XmlElement
- 10. Jak mogę przekonwertować IQueryable <string> na ciąg?
- 11. Jak przekonwertować ciąg na NSData
- 12. Jak przekonwertować ciąg na bitset?
- 13. Jak przekonwertować kod Unicode na ciąg znaków na poziomie Python?
- 14. przekonwertować ciąg Unicode zbiegłego ciąg znaków ASCII
- 15. Jak przekonwertować ciąg na android.net.Uri
- 16. Jak przekonwertować ciąg znaków taki jak "Czerwony" na System.Windows.Media.Color?
- 17. Jak przekonwertować tablicę znaków na tablicę znaków?
- 18. Konwertuj listę <int> na połączony ciąg znaków ints?
- 19. Jak przekonwertować ciąg znaków na prawidłową nazwę zmiennej w python?
- 20. Jak przekonwertować ciąg znaków na nazwę atrybutu obiektu?
- 21. Jak przekonwertować ciąg znaków UTF8 na tablicę bajtów?
- 22. Jak przekonwertować ciąg znaków na wykonywalny wiersz kodu w JavaScript?
- 23. Jak przekonwertować ciąg znaków na UTF8 w Ruby
- 24. Jak przekonwertować ciąg znaków UTF-8 na wielkie litery?
- 25. Jak przekonwertować float lub walutę na zlokalizowany ciąg znaków?
- 26. Jak mogę przekonwertować python urandom na ciąg znaków?
- 27. jak przekonwertować ciąg znaków na uniksowy znacznik czasu w javascript?
- 28. jak mogę przekonwertować ciąg znaków Unicode na ASCII w java
- 29. Jak przekonwertować obiekt python time.struct_time na ciąg znaków ISO?
- 30. Jak przekonwertować ciąg znaków na utf-8 w Pythonie
możliwe duplikat [Tworzenie ciąg z Vec] (http://stackoverflow.com/questions/29158406/creating-a-string-from-vecchar) –