To było dla mnie zdecydowanie najlepsze rozwiązanie. Płynne połączenie tego języka C # i javascript było wszystkim, czego potrzebowałem, aby rozwiązać mój problem.
Miałem podobny problem, w którym musiałem również usunąć znaki nowej linii z mojego ciągu. Próbowałem to zrobić za pomocą string.Replace, nie działa. Kiedy użyłem Regex.Replace z dokładnie tym samym ciągiem wyrażenia regularnego co parametr, zadziałało. Dzięki.
Zauważ, że to podejście spowoduje utworzenie dwóch pośrednich obiektów łańcuchowych. W zależności od rozmiaru ciągu może to mieć znaczące konsekwencje dla wydajności i zużycia pamięci.
„Zawsze dobrze jest używać StringBuilder” <Nie jestem profesjonalistą, ale to nie do końca prawda. Ten artykuł autorstwa Jeffa Atwooda zapewnia zabawny wgląd w manipulowanie ciągami / konkatenację i ostatecznie optymalizację.
string s ="This is a Test String.\n This is a next line.\t This is a tab.\n'";string s1 =String.Join("", s.Where(c => c !='\n'&& c !='\r'&& c !='\t'));
Jest to użycie ogólnego przeciążenia, string.Joinktóre wywoła ToStringkażde charzwrócone przez zapytanie. Lepiej jest po prostu przekazać wyniki zapytania do stringkonstruktora. s1 = new string(s.Where(....).ToArrary());
Właściwy wybór naprawdę zależy od tego, jak duży jest ciąg wejściowy oraz jakie są wymagania dotyczące mocy i pamięci, ale użyłbym wyrażenia regularnego, takiego jak
string result =Regex.Replace(s,@"\r\n?|\n|\t",String.Empty);
Lub jeśli musimy wielokrotnie zastosować tę samą zamianę, lepiej jest użyć skompilowanej wersji dla Regex
var regex =newRegex(@"\r\n?|\n|\t",RegexOptions.Compiled);string result = regex.Replace(s,String.Empty);
UWAGA: różne scenariusze wymagają różnych podejść, aby osiągnąć najlepszą wydajność i minimalne zużycie pamięci
Cóż ... Chciałbym, żebyś zrozumiał bardziej szczegółowe obszary przestrzeni. \tjest właściwie dobrana jako przestrzeń pozioma, a nie pionowa. (przetestuj wkładanie\t w Notatniku)
Jeśli używasz języka Java, po prostu użyj \v. Zobacz odniesienie poniżej.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.