J'ai une chaîne et je n'ai besoin que des dix premiers caractères. Y at-il un moyen que je peux le faire facilement.
J'espère que quelqu'un pourra me montrer.
string s = "Lots and lots of characters";
string firstTen = s.Substring(0, 10);
Vous pouvez créer une méthode d'extension, comme ceci:
public static class Extension
{
public static string Left(this String input, int length)
{
return (input.Length < length) ? input : input.Substring(0, length);
}
}
puis appelez ça comme ça:
string something = "I am a string... truncate me!";
something.Left(10);
Une ligne rapide où la variable s
est votre chaîne:
public string GetFirstTenCharacters(string s)
{
// This says "If string s is less than 10 characters, return s.
// Otherwise, return the first 10 characters of s."
return (s.Length < 10) ? s : s.Substring(0, 10);
}
Et appelez cette méthode comme ceci:
string result = this.GetFirstTenCharacters("Hello, this is a string!");
Dépend :-)
Normalement, vous êtes probablement à la recherche de SubString ... mais si vous utilisez des fonctions unicodes sophistiquées, ceci indique les erreurs qui pourraient survenir (par exemple, les plages unicode> 0xFFFF):
static void Main(string[] arg)
{
string ch = "(\xd808\xdd00汉语 or 漢語, Hànyǔ)";
Console.WriteLine(ch.Substring(0, Math.Min(ch.Length, 10)));
var enc = Encoding.UTF32.GetBytes(ch);
string first10chars = Encoding.UTF32.GetString(enc, 0, Math.Min(enc.Length, 4 * 10));
Console.WriteLine(first10chars);
Console.ReadLine();
}
La raison en est que les caractères sont 16 bits et que Length vérifie les caractères UTF-16 et non les caractères unicode. Cela dit, ce n'est probablement pas votre scénario.
String.Substring: http://msdn.Microsoft.com/en-us/library/aka44szs(v=VS.80).aspx
Utilisez simplement aString.Substring(0, 10);
.
string longStr = "A lot of characters";
string shortStr = new string(longStr.Take(10).ToArray());
il n'y aura pas d'exception même si string lengeth est <10
String s = "characters";
String firstTen = s.Substring(0, (s.Length < 10) ? s.Length : 10);
@ Hiromi Nagashima
Obtenir une longueur spécifique est très simple et facile en c #, Cependant, il est important de le faire de la manière la plus efficace.
points à considérer:
l'exemple ci-dessous montre comment le réaliser de la manière la plus simple et la plus efficace possible.
ASPX:
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox runat="server" ID="txtInput"></asp:TextBox>
<asp:Button runat="server" ID="btn10Chars" onclick="btn10Chars_Click" text="show 10 Chars of string"/><br />
<asp:Label runat ="server" ID="lblOutput"></asp:Label>
</div>
</form>
C #:
public partial class Home : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn10Chars_Click(object sender, EventArgs e)
{
lblOutput.Text = txtInput.Text.Length > 10 ? txtInput.Text.Substring(0, 10) : txtInput.Text + " : length is less than 10 chars...";
}
}
Éloignez-vous de l'exemple:
Beaucoup d'options comme:
string original = "A string that will only contain 10 characters";
//first option
string test = original.Substring(0, 10);
//second option
string AnotherTest = original.Remove(10);
//third option
string SomeOtherTest = string.Concat(original.Take(10));
J'espère que ça aide.