回答:
Enumerable.Takeを次のように使用できます。
char[] array = yourStringVariable.Take(5).ToArray();
または、String.Substringを使用できます。
string str = yourStringVariable.Substring(0,5);
String.Substring
文字列の長さが必要な文字より短い場合、例外がスローされる可能性があることを覚えておいてください。
結果を文字列に戻したい場合は、次を使用できます。
文字列コンストラクタとLINQの使用 Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
アプローチのプラスは、事前に長さをチェックしないことです。
String.Substring
、エラーチェックで使用することです。お気に入り:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
IsNullOrWhiteSpace
ここは間違っています。10個の空白を含む文字列を考えてください。コードは10個すべてを返します。IsNullOrEmpty
代わりに使用してください。(IsNullOrWhiteSpace
他のテストと組み合わせるのは良くありません。代わりにnull + emptyをテストし、それTrim
が指定された動作である場合、必要なテスト/操作をすべて実行してください。)
Substring(int startIndex、int length)を使用できます
string result = str.Substring(0,5);
サブストリングは、指定された文字位置から始まり、指定された長さを持ちます。このメソッドは、現在のインスタンスの値を変更しません。代わりに、現在の文字列、MSDNの startIndex位置から始まる長さの文字を含む新しい文字列を返します。
ソース文字列が5文字未満の場合はどうなりますか?上記の方法を使用すると、例外が発生します。文字列の文字数が5を超えているかどうかを確認する条件を設定してから、部分文字列を介して最初の5文字を取得できます。注:ソース文字列をfirstFiveChar変数に割り当てました。文字が5未満の場合、firstFiveCharは変更されないため、それ以外の部分は必要ありません。
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
の使用時に適切なチェックを行う方法については誰も言及していSubstring()
なかったので、それについて貢献したいと思いました。
を使用Linq
したくない場合Substring()
は、文字列がSubstring()
関数の2番目のパラメーター(長さ)よりも大きいことを確認する必要があります。
最初の5文字が必要だとします。次のように、適切なチェックを行う必要があります。
string title = "love" // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
このチェックSubstring()
がないと、存在しない文字を繰り返し処理するため、関数は例外をスローします。
あなたはアイデアを理解していると思います...
問題.Substring(,)
は、指定された文字列が少なくとも要求された文字数の長さであることを確認する必要があることですArgumentOutOfRangeException
。それ以外の場合は、スローされます。
ソリューション1(「サブストリング」を使用):
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
を使用.Substring(
する場合の欠点は、指定された文字列の長さを確認する必要があることです。
ソリューション2(「Take」を使用):
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
「Take」を使用すると、指定した文字列の長さを確認する必要がなくなります。
PadRight関数を使用して文字列が短くなりすぎないようにし、必要なものを取得して、1つのステートメントで最後からスペースをすべて削除します。
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
なぜだれがこれに言及したのか、私にはわかりません。しかし、これはこれを実現するための最短かつ最も簡単な方法です。
string str = yourString.Remove(n);
n
-必要な文字数
例
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
5つの空白文字を追加してから、最初の5文字を切り取り、結果をトリミングします。追加するスペースの数は、カットする数と一致する必要があります。前に括弧を必ず含めてください.Substring(0,X)
。そうしないと何も追加されません。
string str = (yourStringVariable + " ").Substring(0,5).Trim();
このテクニックを使用するとArgumentOutOfRangeException
、他の回答で言及されていることを心配する必要はありません。
C#8.0でこれを行う新しい方法があります。範囲演算子です。
または、私がemと呼んでいるように、パンダススライス。
古い方法:
string newString = oldstring.Substring(0, 5);
新しい方法:
string newString = oldstring[..5];
一見すると、短いコードの読みやすさのかなり悪いトレードオフのように見えますが、新しい機能により、
このようなクールなもの:
var slice1 = list [2 .. ^ 3]; // list [Range.Create(2、Index.CreateFromEnd(3))]
var slice2 = list [.. ^ 3]; // list [Range.ToEnd(Index.CreateFromEnd(3))]
var slice3 = list [2 ..]; // list [Range.FromStart(2)]
var slice4 = list [..]; // list [Range.All]
以下は、文字列が必要なものよりも大きいかどうかをチェックし、文字列を定義された最大文字数に短縮して「...」を追加する拡張メソッドです。
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;
}
}
または、String.ToCharArray()を使用することもできます。とをパラメータとして
受け取り、int startindex
int length
char[]
new string(stringValue.ToCharArray(0,5))
文字列が適切な長さであることを確認する必要があります。それ以外の場合は、 ArgumentOutOfRangeException
以下のコードを試してください
string Name = "Abhishek";
string firstfour = Name.Substring(0, 4);
Response.Write(firstfour);
私は上記の答えを試しましたが、私が思う最高のものはこれです
@item.First_Name.Substring(0,1)
これで、文字列の最初の文字を取得できます
char
**について質問していて、あなたは**文字について質問しています。彼らは同じものではありません。𣊾
そして、𣇞
プログラマが違いを知らなかったので、私はC#Iで記述されたソフトウェアに障害が発生した昨日を使用するために必要な2つの文字は使用していたchar
との文字が。この罠に陥らないでください!