Προς το περιεχόμενο

Έλεγχος string


HaPagan

Προτεινόμενες αναρτήσεις

Δημοσ.

Λοιπόν αν έχουμε ένα string πως θα ελέγξουμε αν όλοι οι χαρακτήρες είναι ίδιοι;Προς το παρόν έχω καταφέρει να αποθηκεύσω κάθε χαρακτήρα ξεχωριστά σε έναν πίνακα.

Δημοσ.

Opos ipothike kai parapanw kalo tha itan na mas peis kai se pai glossa programatismou thes na to ilopoiiseis.Alla ean exeis perasei olous toys xaraktires se enan pinaka tote einai poly aplo sigkrine ta stoixeia topy pinaka kai des ean einai ola ta idia.

Δημοσ.

Xmm geniki apantisi, opos geniki ine kai i erotisi sou.

 

1.Apothikeuse olous tou xaraktires se ena array,

2.Kane search mesa sto array me ena For loop,

3.Sigrine kathe index tou array metaksi tous

4.Epestrepse to apotelesma.

 

Tha sou doulepsei gia Java, C++ isos kai VB.

Tora an thes paradeigma me kodika kala tha itane na mou peis se poia glossa.

 

Mipos tha prepei na kanoume ena template sta post tou programmatismou, to opoio tha exei ena standard header tou typou :

 

OS:

Compiler:

Description :

Platform :

Other :

 

Opote se kathe post na katalabainoume ti akrivos thelei na kanei kapoios ?

 

<img border="0" title="" alt="[Eek!]" src="images/icons/shocked.gif" />

Δημοσ.

den xreiazetai na tous peraseis se pinaka. ginetai poli pio apla <img border="0" title="" alt="[smile]" src="images/icons/smile.gif" />

 

Orise mia boolean metavliti(arxikopoiise se true)

kai mia char X [x exei to proto xaraktira tou string]

Katopin sigrine apo to 2 xaraktira mexri to mikos tou string. An mia sigrisi einai diaforetiki tote i result=false kai exit loop

Δημοσ.

Η λύσεις που ειπώθηκαν από τα παιδιά είναι όλες σωστές. Μοναδική ένσταση το δεύτερο τμήμα της απάντησης του Dvs. Αν το γράφεις σε Java είναι καλύτερα να έχεις πίνακα χαρακτήρων παρά String γιατί είναι γρηγορότερο με πίνακα και πιάνει πιο λίγη μνήμη.

 

Αυτό που είπε ο root επίσης είναι σωστό. Αν ζητάτε πηγαίο κώδικα καλό είναι να υπάρχει ένα template για να ξέρουμε με τι έχουμε να κάνουμε.

 

Σου παραθέτω παρακάτω μία μέθοδο σε Java που κάνει αυτό που θέλεις και μπορείς να αλλάξεις τη σύνταξη για άλλη γλώσσα αν θέλεις. Μπορεί να έχω συντακτικά λάθη. Αγνόησέ τα. Σκοπός είναι να σου δώσω μία γενική ιδέα.

 

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">public static boolean compareCharacters(String s)

{

char [] charArray = s.toCharArray(); // Convert the String to a character array

int length = charArray.length;

for (int i=0; i<length; i++)

{

// Avoid ArrayIndexOutOfBoundsException

if (i+1 == length)

break;

if (charArray != charArray[i+1])

return false;

}

return true;

}[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Ελπίζω να έπιασες τη λογική.

Δημοσ.

girioni pos mporei na pianei ligoteri mnimi? Afou exeis ena string kai ena pinaka eno stin lisi mou pianeis mnimi mono gian to string. kanei kana kolpo i java? <img border="0" title="" alt="[smile]" src="images/icons/smile.gif" />

Δημοσ.

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">quote:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif">Originally posted by Dvs:

<strong>girioni pos mporei na pianei ligoteri mnimi? Afou exeis ena string kai ena pinaka eno stin lisi mou pianeis mnimi mono gian to string. kanei kana kolpo i java? <img border="0" title="" alt="[smile]" src="images/icons/smile.gif" /> </strong></font><hr /></blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Nai h Java doyleyei diaforetika se ayton ton tomea. Genikws einai kalh praktikh na xrhsimopoioyme char arrays h akoma kai byte arrays anti gia Stings h StringBuffers. Pianei ligoterh mnhmh kai einai kai pio grhgora.

 

O logos egkeitai sto oti ta String sth Java einai immutable, dhladh o,tidhpote allazeis panw se ena String h JVM dhmioyrgei ena kainoyrio String object. An loipon exeis ena String kai to allakseis 100 fores (eite pros8etontas, eite afairwntas xarakthres, eite kanontas kati allo) tote 8a dhmioyrgh8oyne 100 diaforetika String antikeimena.

 

De symbainei to idio bebaia me toys StringBuffers h me toys pinakes xaralkthrwn.

Δημοσ.

aa na xrisimopoiiseis mono array. oxi kai ta 2 <img border="0" title="" alt="[smile]" src="images/icons/smile.gif" />

HaPagan: pantos vgenei poli eukola se VB

Δημοσ.

Opos eipe kai o Dvs:gia na einai oloi oi xaraktires idioi, tha prepei oloi na einai idioi me ton proto.Opote perneis ton proto xaraktira kai ton sigkrineis me tous allous

 

px esto String1 to string

 

Dim i As Integer

Dim match As Boolean

Dim String1 As String, Char1 As String, Char2 As String

 

Char1 = Left$(String1, 1)

 

For i = 2 To Len(String1)

 

Char2 = Mid(String1, i, 1)

If Char2 <> Char1 Then

match = False

Exit For

End If

match = True

Next i

 

An den thes na sigkrineis tin katastasi tou xaraktira, diladi an einai kefalaio h mikro to gramma,metatrepeis apo thn arxi to string sou se mikra h kefalaia.

 

Tora oson afora tin taxitita stin VB den yparxei to paramikro problima.Kai 15000 xaraktires na exei to string sou h diadikasia tha oloklirothei se ligotero apo 1 sec.

Δημοσ.

Νομίζω, ότι ο τρόπος του nickthegreek ελέγχει μόνο τον πρώτο χαρακτήρα με τους υπόλοιπους και όχι κάθε χαρακτήρα με τους υπόλοιπους.

Αν το κάνεις όπως παρακάτω θα ελέγχει όλους τους χαρακτήρες με τους επόμενούς του. (δεν έχω vb6 στο pc που είμαι, αλλά μάλλον σωστό είναι)

 

dim str1 as string, i as single, same as boolean

 

For i=1 to len(str1)-1

For k=i+1 to len(str1)

If mid(str1,i,1)<> mid(str1,k,1) then

same=false

exit for

Else

same=true

Endif

Next k

Next i

Δημοσ.

timiman:

esto oti exoume ena string 3 xaraktiron.

Se xarakrires: an 1=2 kai 1=3 tote apokleiete 1<>2

Genikeuontas (kalo?) an 1=2, 1=3, 1=4 ... 1=n kai 2=3, 2=4,2=5 etc....

Δημοσ.

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">quote:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif">Originally posted by Dvs:

<strong>timiman:

esto oti exoume ena string 3 xaraktiron.

Se xarakrires: an 1=2 kai 1=3 tote apokleiete 1<>2

Genikeuontas (kalo?) an 1=2, 1=3, 1=4 ... 1=n kai 2=3, 2=4,2=5 etc....</strong></font><hr /></blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Sorry βρε Dvs, δε το έπιασα...

Τι θέλεις να πεις;

Αφού 1=2 εννοείτε 1<>2, λογικό δεν είναι; <img border="0" title="" alt="[Frown]" src="images/icons/frown.gif" />

 

UPDATE!!!

 

ΟΚ, μάλλον σε έπιασα. εννοούσες 1<>3 και όχι 1<>2.

Ναι, όντως είναι περιττός ο 2ος βρόγχος.

 

<small>[ 17-04-2002, 14:23: Το μήνυμα επεξεργάστηκε από: timiman ]</small>

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...