Czy istnieje prosty sposób na usunięcie pierwszych 2 i ostatnich 2 znaków w ciągu znaków?Jak usunąć pierwsze dwa i ostatnie dwa znaki w ciągu znaków?
Mam ten ciąg:
\nTESTSTRING\n
Jak można łatwo mogę je usunąć?
Czy istnieje prosty sposób na usunięcie pierwszych 2 i ostatnich 2 znaków w ciągu znaków?Jak usunąć pierwsze dwa i ostatnie dwa znaki w ciągu znaków?
Mam ten ciąg:
\nTESTSTRING\n
Jak można łatwo mogę je usunąć?
str = str.Substring(2,str.Length-4)
Oczywiście trzeba sprawdzić, czy ciąg zawiera więcej niż 4 znaki zanim się do tego. Również w twoim przypadku wydaje się, że \ n jest pojedynczym znakiem nowej linii. Jeśli wszystko, co chcesz zrobić, to usunąć początkowe i końcowe spacje, należy użyć
str.Trim()
jak sugeruje Charles
To jest poprawna odpowiedź na zadane pytanie, ale wygląda na to, że OP nie zdaje sobie sprawy, że \ n jest ucieczką dla nowej linii. –
Pierwsza część jest poprawna do mojego użytku. Drugi nie ma zastosowania, ponieważ używam go w HTML, a użycie .Trim() nie usuwa w ogóle białych znaków. –
@ Substring Manu powinien być substratem. Jest za mała, aby mi ją przesłać – MobileMon
Czy spróbować:
myString.Trim();
\ n to JEDNA czcionka. –
myString = myString.SubString(2, myString.Length - 4);
Wymaga sprawdzenia dla opcji "Długość <4". –
(myString == ESTSTRIN) == true –
// Test string
var str = "\nTESTSTRING\n";
// Number of characters to remove on each end
var n = 2;
// Slimmed string
string slimmed;
if (str.Length > n * 2)
slimmed = str.Substring(n, str.Length - (n * 2));
else
slimmed = string.Empty;
// slimmed = "ESTSTRIN"
Papuccino1,
Jeśli utworzyć metodę rozszerzenia takiego:
public static class StringEnumerator {
public static IEnumerable<String> GetLines(this String source) {
String line = String.Empty;
StringReader stringReader = new StringReader(source);
while ((line = stringReader.ReadLine()) != null) {
if (!String.IsNullOrEmpty(line)) {
yield return line;
}
}
}
}
Twój kod zostanie uproszczony i będzie bezpieczniejszy (nie zależy od niebezpiecznego indeksu):
class Program {
static void Main(string[] args) {
String someText = "\nTESTSTRING\n";
String firstLine = someText.GetLines().First();
}
}
Mam nadzieję, że to pomaga,
Ricardo Lacerda Castelo Branco
public string RemoveFirstCharFromString(string Text)
{
string[] arr1 = new string[] { "The ", "A " };
string Original = Text.ToLower();
if (Text.Length > 4)
{
foreach (string match in arr1)
{
if (Original.StartsWith(match.ToLower()))
{
//Original = Original.Replace(match.ToLower(), "").TrimStart();
Original = Original.Replace(Original.Substring(0, match.Length), "").TrimStart();
return Original;
}
}
}
return Original;
}
string Origional = TextBox1.Text.Replace(TextBox1.Text.Substring(0, 2), "");
Origional += Origional.Replace(Origional.Substring((Origional.Length - 2), 2), "");
jego prosty z Substring
i Remove
metod, jak wyszczególniono w this link:
string mystring = "122014";
mystring = mystring.Substring(mystring.Length - 4);
Response.Write(mystring.ToString());
//output:2014
mystring = "122014";
string sub = mystring.Remove(mystring.Length - 4);
Response.Write("<br>");
Response.Write(sub.ToString());
//output: 12
Twoje pytanie jest błędne. "\ n" to JEDNA czcionka (również wymieniona w komentarzu poniżej). –
... chyba że jest to nie tylko znak \ n, ale w rzeczywistości kombinacja znaków \ r \ n używana jako łamanie linii w systemach innych niż * nix. – Guffa
Jeśli chcesz usunąć \ n znaków, możesz użyć: 'str.Replace ('\ n', '');' –