I have read this question to get first char of the string. Is there a way to get the first n number of characters from a string in C#?
问题:
回答1:
You can use Enumerable.Take like:
char[] array = yourStringVariable.Take(5).ToArray();
Or you can use String.Substring.
string str = yourStringVariable.Substring(0,5);
Remember that String.Substring
could throw an exception in case of string's length less than the characters required.
If you want to get the result back in string then you can use:
Using String Constructor and LINQ's
Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
The plus with the approach is not checking for length before hand.
- The other way is to use
String.Substring
with error checking
like:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
回答2:
Please try:
yourString.Substring(0, 5);
Check C# Substring, String.Substring Method
回答3:
You can use Substring(int startIndex, int length)
string result = str.Substring(0,5);
The substring starts at a specified character position and has a specified length. This method does not modify the value of the current instance. Instead, it returns a new string with length characters starting from the startIndex position in the current string, MSDN
What if the source string is less then five characters? You will get exception by using above method. We can put condition to check if the number of characters in string are more then 5 then get first five through Substring. Note I have assigned source string to firstFiveChar variable. The firstFiveChar not change if characters are less then 5, so else part is not required.
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
回答4:
No one mentioned how to make proper checks when using Substring()
, so I wanted to contribute about that.
If you don't want to use Linq
and go with Substring()
, you have to make sure that your string is bigger than the second parameter (length) of Substring()
function.
Let's say you need the first 5 characters. You should get them with proper check, like this:
string title = "love" // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
Without this check, Substring()
function would throw an exception because it'd iterate through letters that aren't there.
I think you get the idea...
回答5:
The problem with .Substring(,)
is, that you need to be sure that the given string has at least the length of the asked number of characters, otherwise an ArgumentOutOfRangeException
will be thrown.
Solution 1 (using 'Substring'):
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
The drawback of using .Substring(
is that you'll need to check the length of the given string.
Solution 2 (using 'Take'):
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
Using 'Take' will prevent that you need to check the length of the given string.
回答6:
I don't know why anybody mentioned this. But it's the shortest and simplest way to achieve this.
string str = yourString.Remove(n);
n
- number of characters that you need
Example
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
回答7:
Append five whitespace characters then cut off the first five and trim the result. The number of spaces you append should match the number you are cutting. Be sure to include the parenthesis before .Substring(0,X)
or you'll append nothing.
string str = (yourStringVariable + " ").Substring(0,5).Trim();
With this technique you won't have to worry about the ArgumentOutOfRangeException
mentioned in other answers.
回答8:
string str = "GoodMorning"
string strModified = str.Substring(0,5);
回答9:
Below is an extension method that checks if a string is bigger than what was needed and shortens the string to the defined max amount of chars and appends '...'.
public static class StringExtensions
{
public static string Ellipsis(this string s, int charsToDisplay)
{
if (!string.IsNullOrWhiteSpace(s))
return s.Length <= charsToDisplay ? s : new string(s.Take(charsToDisplay).ToArray()) + "...";
return String.Empty;
}
}
回答10:
To get the first n number of characters from a string in C#
String yourstring="Some Text";
String first_n_Number_of_Characters=yourstring.Substring(0,n);
回答11:
Use the PadRight function to prevent the string from being too short, grab what you need then trim the spaces from the end all in one statement.
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
回答12:
I use:
var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length);
or alternative if you want to check for Whitespace too (instead of only Null):
var firstFive = !String.IsNullOrWhiteSpace(stringValue) && stringValue.Length >= 5 ? stringValue.Substring(0, 5) : stringValue
回答13:
Or you could use String.ToCharArray().
It takes int startindex
and and int length
as parameters and returns a char[]
new string(stringValue.ToCharArray(0,5))
You would still need to make sure the string has the proper length, otherwise it will throw a ArgumentOutOfRangeException
回答14:
Try below code
string Name = "Abhishek";
string firstfour = Name.Substring(0, 4);
Response.Write(firstfour);
回答15:
I have tried the above answers and the best i think is this one
@item.First_Name.Substring(0,1)
In this i could get the first letter of the string