Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
Mit Strings arbeiten
spacer
Autor Nachricht
ThomAlex
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star

Beiträge: 44
Dabei seit: 19.10.2009



BeitragVerfasst am: Mo 08.02.10 21:57  Antworten mit Zitat Beitrag melden
Hallo an alle,

weiß jemand wie ich wenn ich einen text in eine richtextbox z.b eingebe wie ich das kürzeste und das längste wort ermitteln kann? die einzelnen wörter speichern indem ich die buchstaben bis zum leerzeichen durchlaufen lasse ist keine gute lösung weil bei zwei leerzeichen es dann auch ein wort mehr ist und am ende steht kein leerzeichen also muss es ne allgemeinere lösung geben erstmal um wörter aus texten zu sichern(string array) und dann wie anfangs gesagt länge ermitteln, hoffe ihr habt ideen. Ganz bestimmt^^ danke schonmal

MFG ThomAlex

edit: Ok dein Tipp war die Lösung: StringsSplitOptions

ausblenden C#-Quelltext markieren
1:
string[] words = eingabe.Split(new char[] { ' ', '?'},StringSplitOptions.RemoveEmptyEntries);

das Programm läuft, Danke.


Zuletzt bearbeitet von ThomAlex am Mo 08.02.10 23:37, insgesamt 1-mal bearbeitet
Private Nachricht sendenPosting in privater Nachricht zitieren
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Chefentwickler

Beiträge: 17070
Dabei seit: 07.07.2002
Wohnort: Server-Souterrain

Win 7
Delphi Prism, C# (VS 2010)
BeitragVerfasst am: Mo 08.02.10 22:04  Antworten mit Zitat Beitrag melden
Du kannst die einzelnen Wörter mit String.Split erhalten.

Satzzeichen scheinen ja nicht beachtet werden zu müssen, wenn Du derjenige bist, der den Text eingibt *fg*

_________________
"Physics is a bitch" - William Bell, Fringe
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
ThomAlex
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star

(Threadstarter)

Beiträge: 44
Dabei seit: 19.10.2009



BeitragVerfasst am: Mo 08.02.10 23:01  Antworten mit Zitat Beitrag melden
gut danke, ich hab das hinbekommen bis auf eine Sache: wenn ich beispielsweise den text habe: "hallo wie gehts?"
dann befinden sich in meinem string array dank Split diese Substrings: "hallo","wie","gehts",""
der letzte leere string stört mich, wie kann ich den wegbekommen, ich habe der Splitmethode '?'übergeben, trotzdem ist es für ihn ein string, komischerweise ist bei einem leerzeichen " " nicht sowas "" geworden. Iwas mache ich falsch, komme nicht weiter. Außerdem besteht dieser String auch nur aus 2 Wörtern: "hallo du ", trotzdem sagt er mir es wären ne Menge. Ich brauch nochn Denkanstoß


Zuletzt bearbeitet von ThomAlex am Mo 08.02.10 23:11, insgesamt 1-mal bearbeitet
Private Nachricht sendenPosting in privater Nachricht zitieren
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Chefentwickler

Beiträge: 17070
Dabei seit: 07.07.2002
Wohnort: Server-Souterrain

Win 7
Delphi Prism, C# (VS 2010)
BeitragVerfasst am: Mo 08.02.10 23:06  Antworten mit Zitat Beitrag melden
Zeig mal Deinen Quellcode, wo dieser leere String herkommt. Wenn ich einfach ein Split auf den von Dir genannten String mache, ist der letzte Eintrag "gehts?".

Evtl. hilft Dir schon weiter, dass die Split-Methode noch einen zweiten Parameter vom Typ StringSplitOptions hat, bei dem man angeben kann, was mit leeren Einträgen passieren soll?

_________________
"Physics is a bitch" - William Bell, Fringe
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
ThomAlex
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star

(Threadstarter)

Beiträge: 44
Dabei seit: 19.10.2009



BeitragVerfasst am: Mo 08.02.10 23:24  Antworten mit Zitat Beitrag melden
also das ist mein Versuch:

ausblenden C#-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
string eingabe = "hi wie gehts?";
string[] words = eingabe.Split(new char[] { ' ', '?'});
int max = words[0].Length;
for (int i = 1; i < words.Length; i++)
{
if (words[i].Length > max)
{
max = words[i].Length;
string bigword = words[i];
}
}
int woerter = words.Length;
label1.Text = woerter.ToString();

in words stecken die strings: "hi","wie","gehts","" und somit hat der Text Vier Wörter, was nach meiner Zählung nicht stimmen kann :wink:
und mehrere dieser SplitChars hintereinander führen auch zu einem neuen leeren String "".

Bsp:

"hallo du"(2 Wörter)
"hallo?du"(2 Wörter)

aber:

"hallo? du"(3 Wörter) oder 2 Leerzeichen hintereinander(wo ich jetzt nicht weiß wie ich 2 darstelle)

ich könnte natürlich mit Abfragen über Gleichheit mit "" diese aus dem Array entfernen, allerdings bleibt unter diesem index null.
Private Nachricht sendenPosting in privater Nachricht zitieren
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star

Beiträge: 262
Dabei seit: 15.03.2007
Wohnort: Willich


VS2005 Pro, VS2008 Pro, Delphi 7 Pro, Delphi 2006 Enterprise
BeitragVerfasst am: Di 09.02.10 00:19  Antworten mit Zitat Beitrag melden
Sieh dir nochmal die Überladungen der String.Split Methode an. Insbesondere die mit StrinSplitOptions.
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home