如何將一個英文句子分割成很多單字並存入陣列 |
尚未結案
|
chaochichen
一般會員 發表:9 回覆:4 積分:2 註冊:2005-07-03 發送簡訊給我 |
|
jimmy_wei
高階會員 發表:9 回覆:176 積分:147 註冊:2003-08-28 發送簡訊給我 |
var str1, str2: String; sList: TStringList; begin //以下就可以把你的句子分開丟在sList中了,不過","及"."標點符號 //你要另外處理 str1:= 'I am a gril.' str2:= StringReplace(Str1, ',', '', [rfReplaceAll]); str2:= StringReplace(Str2, '.', '', [rfReplaceAll]); sList.Text:= StringReplace(Str1, ' ', #13#10, [rfReplaceAll]); //再來只要亂數把資料抓出來再丟回去就好了 //參考http://delphi.ktop.com.tw/topic.php?topic_id=50217 end;發表人 - jimmy_wei 於 2005/07/07 16:02:48 |
chaochichen
一般會員 發表:9 回覆:4 積分:2 註冊:2005-07-03 發送簡訊給我 |
引言:先感謝這位高手幫我解惑, 不過看過參考資料後, 我對於"亂數把資料抓出來再丟回去"這個部份仍然有點困難, 也就是說如何讓字串去跑亂數再印出來 能否請好心的高手再次指點指點我呢? 感謝var str1, str2: String; sList: TStringList; begin //以下就可以把你的句子分開丟在sList中了,不過","及"."標點符號 //你要另外處理 str1:= 'I am a gril.' str2:= StringReplace(Str1, ',', '', [rfReplaceAll]); str2:= StringReplace(Str2, '.', '', [rfReplaceAll]); sList.Text:= StringReplace(Str1, ' ', #13#10, [rfReplaceAll]); //再來只要亂數把資料抓出來再丟回去就好了 //參考http://delphi.ktop.com.tw/topic.php?topic_id=50217 end;發表人 - jimmy_wei 於 2005/07/07 16:02:48 |
change.jian
版主 發表:29 回覆:620 積分:439 註冊:2003-06-02 發送簡訊給我 |
to chaochichen:
也可以這樣做,參考看看:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; ListBox1: TListBox; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var ss:TStringList; Index:Integer; begin ListBox1.Clear; ss:=TStringList.Create; Randomize; //設定亂數種子 try ss.Delimiter:=' '; ss.DelimitedText:='I am a girl'; while ss.Count>0 do begin Index:=Random(ss.Count); //產生亂數 ListBox1.Items.Add(ss.Strings[Index]); ss.Delete(Index); end; finally ss.free; end; end; end. |
jimmy_wei
高階會員 發表:9 回覆:176 積分:147 註冊:2003-08-28 發送簡訊給我 |
chaochichen 你好: 其實我是想提供你方法,其它你自己去完成...
還是你希望可以直接得到一支會動的程式....
我覺得這樣就不好玩了...
所以我再提供你亂數的方法,最少你還是可以自
己去串,如果真的不行,再來要程式吧。 我的做法:
1.先針對.,等符號把它們丟到sList中
2.再把剩下的資料丟到sList中(方法給你了)
3.刪除sList中空白的部份(如果有的話啦)
4.針對sList.Count把(0~sList.Count)取出的順序打亂放到另一個陣列
5.針對這個陣列的順序取回資料
大功告成
|
jimmy_wei
高階會員 發表:9 回覆:176 積分:147 註冊:2003-08-28 發送簡訊給我 |
chaochichen 你好: 以下這個小範例,可以解決你亂數抓資料的問題
你試試....
procedure TForm1.Button1Click(Sender: TObject); var i, iRan, iCount: Integer; sTmp: String; begin Memo1.Clear; iCount:= StrToInt(Edit1.Text); for i:=0 to iCount-1 do Memo1.Lines.Add(IntToStr(i)); Randomize; for i:=0 to iCount-1 do begin iRan:= Random(iCount); sTmp:= Memo1.Lines.Strings[i]; Memo1.Lines.Strings[i]:= Memo1.Lines.Strings[iRan]; Memo1.Lines.Strings[iRan]:= sTmp; end; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |