請問一下,要如何找1234/5678/9這字串中的第二個/是在第幾個位置呢? |
尚未結案
|
SO-TOP
一般會員 發表:5 回覆:1 積分:1 註冊:2004-09-29 發送簡訊給我 |
|
likush
高階會員 發表:5 回覆:235 積分:103 註冊:2002-10-08 發送簡訊給我 |
procedure TForm1.Button1Click(Sender: TObject);
Const
v1 : string = '12345/67/89';
Var
I : Integer;
begin
for I := 0 to length(v1) DO
begin
if v1[I] = '/' Then
showmessage(inttostr(I));
end;
end; =========================
讀萬卷書~不如來K.TOP走一遭
=========================
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
這樣如何? function TForm1.FindOccurrence ( s : string; c : Char;
Occurrence : Integer) : Integer;
var i, o : Integer;
begin result := 0; // 預設找不到時傳回零
if (s = '') or (Occurrence < 1) then exit; // 安全檢查
o := 0; // 預設出現次數為零 for i := 1 to Length(s) do //走訪整條字串
begin
if s[i] = c then o := o 1; //如有出現,則紀錄出現次數
if o = Occurrence then begin result := i; exit; end;
end; // 出現次數若為指定值,則傳回 i 值。 end; 我有測試過程式碼,沒有問題,傳回值若不為零,表示找到該字元"特定出
現次數"在字串第幾個位置。若傳回零,表示沒有出現那麼多次,甚至沒出現。
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 沒有現成的 function 可以用, 可以利用 PosEx function 自行寫一個通用的查找 function, 如下,
uses StrUtils; // SubStr 是要查找的子字串, S 是原始字串, OrdNum 是要找第幾個 function PosEx2(const SubStr, S: string; OrdNum: integer): integer; var i: integer; begin Result := 0; For i:=1 to OrdNum do begin Result := PosEx(SubStr, S, Result 1); if Result > 0 then continue else begin Result := 0; break; end; end; end; .... var s: string; begin s:='1234/5678/9'; ShowMessage(IntToStr(PosEx2('/', s, 2))); // show 10 end;若是沒有 PosEx 的這個函數(delphi 6起才出現在 StrUtils), 可以自己加入, function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer; var I,X: Integer; Len, LenSubStr: Integer; begin if Offset = 1 then Result := Pos(SubStr, S) else begin I := Offset; LenSubStr := Length(SubStr); Len := Length(S) - LenSubStr 1; while I <= Len do begin if S[I] = SubStr[1] then begin X := 1; while (X < LenSubStr) and (S[I X] = SubStr[X 1]) do Inc(X); if (X = LenSubStr) then begin Result := I; exit; end; end; Inc(I); end; Result := 0; end; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |