У меня есть строка, похожая на SMITH 09-15 # 4-01H6 FINAL 07-02-2011.dwg, и мне нужно получить все до слова FINAL, включая пробел перед F. Таким образом, выход будет SMITH 09-15 # 4-01H6. Как я могу это получить? String.substring? регулярное выражение? большое спасибо
Найти подстроку в строке с помощью С#
Ответ 1
IndexOf ( "FINAL" ) получит индекс FINAL. Затем получим подстроку от 0 до этого индекса.
Обновление: не забудьте указать правильную опцию StringComparison.
Ответ 2
Использование метода String.Substring()
String a = "SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg"
String b = a.Substring(0, a.IndexOf("FINAL"));
Я бы не предложил использовать регулярное выражение в этом случае, поскольку он тяжелее этого кода.
Ответ 3
В следующем примере cuttedOne будет равен "SMITH 09-15 # 4-01H6".
string yourString = "SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg";
string cuttedOne = yourString.Substring(0, yourString.LastIndexOf("FINAL"));
Вам нужно использовать LastIndexOf вместо IndexOf; в противном случае, если вход "CARFINALTH 09-15 # 4-01H6 FINAL 07-02-2011.dwg", вы получите результат "CAR".
Ответ 4
Регулярное выражение, вероятно, более убито, просто String.Substring
как:
string original = "SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg";
int pos = original.IndexOf("FINAL");
string new = original.Substring(0, pos);
Ответ 5
Попробуйте следующее:
string data = "SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg";
string result = data.Substring(0, data.IndexOf("FINAL"));
Ответ 6
Это должно сделать это за вас:
string str = "SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg"
string substring = str.Substring(0, str.IndexOf("FINAL"))
В приведенном выше коде подстрока начинается с индекса 0, а затем идет длина местоположения "ЗАВЕРШИТЬ" (начало char)
Ответ 7
Только для этой строки вы можете найти индекс F
и использовать String.Substring(0,indexofF)
.
Код, подобный этому
private static int ReturnIndexOfAGivenCharacterInAString(string str, string s)
{
int index = str.IndexOf(s);
return index;
}
private static string ReturnSubStringOfAGivenStringByLength(string str, string s)
{
int indexOfS = ReturnIndexOfAGivenCharacterInAString(str,s);
string subString = str.Substring(0,indexOfS);
return subString;
}
private static string ReturnSubStringOfMyString()
{
string myString = "SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg";
//As I pointed earlier you can use F for this string because there is no other F in it
//no need for checking FINAL
string subStringOfMyString = ReturnSubStringOfAGivenStringByLength(myString,"F");
}
Теперь вы можете вызвать ReturnSubStringOfMyString()
, чтобы получить то, что вы хотите, и вы также можете вызвать ReturnSubStringOfAGivenStringByLength(string,string)
-это можно использовать для любой строки, как ReturnSubStringOfAGivenStringByLength("SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg","F")
.