webForumDet fria alternativet

Kollar antal tecken i strängen

.NET

43 svar · 649 visningar · startad av Nickemannen

Medlem sedan aug. 20003 575 inlägg
Frågan#1

Blir galen..
jag hittar ingenstans hur man kolla längden av en sträng

i språket C# i VB är det lät Len(),Right(),Left()

Men vad e det i C# ?

Medlem sedan dec. 2000399 inlägg
#2

Ett litet ex:

string test = "HEJ!";
Console.WriteLine("Antal tecken: {0}", test.Length);
Medlem sedan aug. 20003 575 inlägg
#3

tack

Medlem sedan feb. 20022 594 inlägg
#4

Finns det några motsvarigheter till Right() och Left() då?

Medlem sedan apr. 20012 266 inlägg
#5

.Substring(System.Int32 startIndex , System.Int32 length) eller bara .Substring(System.Int32 startIndex)

Exempel kod:

string test = "hihi";
label1.text = test.Substring(1,2);
Medlem sedan feb. 20022 594 inlägg
#6

.Substring(System.Int32 startIndex , System.Int32 length) är alltså detsamma som mid()

.Substring(System.Int32 startIndex , System.Int32 length) är detsamma som left()

Finns alltså inget right() ?

red: /me skäms!

Medlem sedan mars 20007 896 inlägg
#7

Hmm, nej så är det inte. :)

.Substring( System.Int32, System.Int32 ) är Mid() och Left().
.Substring( System.Int32 ) är liknande Right().

Exempel:

string str = "abcdef";
Console.WriteLine( str.Substring( 1 ) ); // Borde generera: "bcdef"
Console.WriteLine( str.Substring( 0, 1 ) ); // Borde generera: "a"
Console.WriteLine( str.Substring( 2, 4 ) ); // Borde generera: "cde"
Console.WriteLine( str.Substring( -1 ) ); // Kanske genererar: "f"

Jag är lite osäker, men så är det i andra programmeringsspråk. :)

Med ett minus-tecken framför, brukar liknande funktioner räkna bakifrån. Troligtvis så även i C#.

Medlem sedan apr. 20012 266 inlägg
Medlem sedan feb. 20022 594 inlägg
#9

Tack renholm, precis vad jag vill ha.

Tackar SPiN. Du kan det även fast du inte kan det egentligen. Rätt chefigt. :e

Medlem sedan apr. 20012 266 inlägg
#10

SPiN skrev:

Hmm, nej så är det inte. :)

.Substring( System.Int32, System.Int32 ) är Mid() och Left().
.Substring( System.Int32 ) är liknande Right().

Exempel:

string str = "abcdef";
Console.WriteLine( str.Substring( 1 ) ); // Borde generera: "bcdef"
Console.WriteLine( str.Substring( 0, 1 ) ); // Borde generera: "a"
Console.WriteLine( str.Substring( 2, 4 ) ); // Borde generera: "cde"
Console.WriteLine( str.Substring( -1 ) ); // Kanske genererar: "f"

Jag är lite osäker, men så är det i andra programmeringsspråk. :)

Med ett minus-tecken framför, brukar liknande funktioner räkna bakifrån. Troligtvis så även i C#.

Console.WriteLine( str.Substring( -1 ) ); // Kanske genererar: "f"
Stämmer inte eftersom startindex kan inte vara mindre än 0.

Console.WriteLine( str.Substring( 2, 4 ) ); // Borde generera: "cde"
Sedan genererar raden ovan "cdef".

Medlem sedan mars 20007 896 inlägg
#11

Stämmer inte eftersom startindex kan inte vara mindre än 0.

Ok, jag var väldigt osäker på den - men jag tog en rövare. ;)

Console.WriteLine( str.Substring( 2, 4 ) ); // Borde generera: "cde"
Sedan genererar raden ovan "cdef".

Hmm, verkligen? Den borde ju plocka de bokstäver på index-nummer 2, 3 och 4 ( Dvs. cde )? Hmm... Är du verkligen säker? ;)

Medlem sedan feb. 20022 594 inlägg
#12

Kanske kan ta detta här också. Ni kan säkert.

Jag har ju som tidigare nämnt endast sysslat med C#-programmering, alltså ingen ASP .NET...
Använder man Console.WriteLine också när det gäller webbsidor?

Såg också på Vides sida webeye.nu att han använda Response.Redirect för att skicka vidare till annan sida. Är det C#?
Antar väl att VB.NET ser ut så.

Medlem sedan mars 20007 896 inlägg
#13

I ASP.NET skulle jag gissa på att du använder Response.WriteLine(). Response.Redirect() är troligtvis detsamma för C#.

Medlem sedan feb. 20022 594 inlägg
#14

Okej. Renholm, vet du kanske?

Medlem sedan apr. 20012 266 inlägg
#15

Response objektet är samma för både VB.NET och C#.
Fast du ska inte använda Response.Write för att presentera data. Det görs via de olika WebControlerna t.ex DataGrid.

Medlem sedan apr. 20012 266 inlägg
#16

SPiN skrev:

Stämmer inte eftersom startindex kan inte vara mindre än 0.

Ok, jag var väldigt osäker på den - men jag tog en rövare. ;)

Console.WriteLine( str.Substring( 2, 4 ) ); // Borde generera: "cde"
Sedan genererar raden ovan "cdef".

Hmm, verkligen? Den borde ju plocka de bokstäver på index-nummer 2, 3 och 4 ( Dvs. cde )? Hmm... Är du verkligen säker? ;)

Jupp helt säker.. har till och med test kört.

<%@ Page Language="C#" Debug="true" %>
<%
string str = "abcdef";
Response.Write( str.Substring( 2, 4 )); // Borde generera: "cde"
%>

Och resultatet blev "cdef".

Medlem sedan mars 20007 896 inlägg
#17

Why, oh, why? Jag kan verkligen inte förstå hur det kan bli det... Du har ingen förklaring?

Medlem sedan feb. 20022 594 inlägg
#18

renholm skrev:

Response objektet är samma för både VB.NET och C#.
Fast du ska inte använda Response.Write för att presentera data. Det görs via de olika WebControlerna t.ex DataGrid.

Ett tips bara, eller? Ser ju att du använder Response.Write i C# i inlägget ovan.

Medlem sedan apr. 20012 266 inlägg
#19

men det var för att jag gjorde en snabbis...
Känndes onödigt att sätta in str.Substring( 2, 4 ) i ett dataset och sedan retunera det via en DataList. Så använd Response.Write när du ska testa grejer.

Medlem sedan feb. 20022 594 inlägg
#20

Okej. Tackar för allt, SPiN och renholm.

Kommer med största sannolikhet behöva mer hjälp i framtiden, men det tar vi då.

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)