2016-03-27 13 views
-2

Ich habe eine Zeichenfolge, die möglicherweise abgeschnitten werden muss oder nicht. Ich übergebe zwei nicht negative Ganzzahlen als Argumente für mein Programm. Die erste Anweisung soll dem Programm mitteilen, wie viele Zeichen am Anfang der Zeichenfolge entfernt werden müssen, und die zweite Anweisung gibt an, wie viele Zeichen vom Ende entfernt werden sollen. Gibt es eine Möglichkeit, es so zu machen, dass Nullen als Eingabe richtig funktionieren, die Bedeutung des Codes ist selbstverständlich und es gibt keine dummen bedingten Anweisungen wie if (removefirst != 0).Wie zeichne ich nichts ab? Nichts entfernen?

string.Remove(0, removefirst) benötigt die bedingte Anweisung, weil das erste Argument strikt kleiner sein muss als das zweite, sagt die Ausnahmemeldung. Gibt es einen Weg, es hübscher zu machen?

+0

Konnten Sie den vollen Code von diesem schreiben? Und einige Beispieleingabe und erwartete Ausgabe? – Steve

+0

"Das erste Argument muss strikt kleiner sein als das zweite, sagt die Ausnahmemeldung" - Was ist die genaue Ausnahmebedingung? Was auch immer es ist, entweder ist es falsch oder du interpretierst es falsch. Ohne weitere Informationen denke ich an letzteres. '" abc ".Remove (2, 1)' funktioniert gut und gibt '" ab "' zurück. '2' ist definitiv nicht weniger als' 1'. – hvd

+0

@hvd Ich habe es falsch interpretiert. Die Frage kann sicher als nutzlos gelöscht werden, denke ich. Danke, dass du es bemerkst; Ich markiere und vielleicht wird ein Moderator jetzt löschen, wenn es eine Antwort gibt. –

Antwort

7

Math + verwenden Teilzeichenfolge()?

var result = str.Substring(firstNumber, str.Length - (firstNumber + secondNumber)); 

DotNetFiddle Example

string yourstring = "asdf"; 
string result; 
int firstNumber = 0; 
int secondNumber = 0; 

Console.WriteLine(yourstring); 

result = yourstring.Substring(firstNumber, yourstring.Length - (firstNumber+secondNumber)); 

Console.WriteLine(result); 

firstNumber = 1; 
secondNumber = 1; 
result = yourstring.Substring(firstNumber, yourstring.Length - (firstNumber+secondNumber)); 

Console.WriteLine(result); 

Ergebnisse

asdf

asdf

sd

+2

beide Zahlen beeinflussen die Länge ... –

+0

Richtig du bist! Vielen Dank :) –