找回密码
 点一下
查看: 2895|回复: 4

function String.FindFirst(index : integer,text : string) : integer

[复制链接]
发表于 2007-6-6 16:41:40 | 显示全部楼层 |阅读模式
library JASSLANG
struct String
    string S = null
//! define char string
method FindFirst takes integer index, string text returns integer
    local integer n = StringLength(this.S)
    local integer m = StringLength(text)
    local integer i = 0
    local integer j = 0
    local integer t = 0
    local char array src
    local char array tgt
    if m > n or index > n  then
       return -1
    endif
    loop
        exitwhen i >= n
        set src = SubString(this.S,i,i+1)
        set i = i + 1
    endloop
    loop
        exitwhen j >= m
        set tgt[j] = SubString(text,j,j+1)
        set j = j + 1
    endloop     
    set i = index - 1
    set j = 0
    loop
        exitwhen i >= n      
        set t = i      
        set j = 0
        loop
            if j >= m then
               return t + 1
            endif
            exitwhen tgt[j] != src
            set j = j + 1
            set i = i + 1
        endloop
        set i = t + 1
    endloop
    return 0
endmethod
endstruct
endlibrary
发表于 2009-8-21 11:35:00 | 显示全部楼层
又素VJASS,用不习惯。
回复

使用道具 举报

发表于 2009-9-19 15:04:56 | 显示全部楼层
VJ很难学……
回复

使用道具 举报

发表于 2009-9-20 07:50:12 | 显示全部楼层
不明白LZ想干什么 实现IndexOf ?
PASS:一般没有找到指定字符串返回的是-1
回复

使用道具 举报

发表于 2009-9-20 08:44:50 | 显示全部楼层
LZ想实现的是:
在一个字符串中,找到第一个子字符串(在字符串的index位置之后)的位置。
有点绕……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-6-26 10:22 , Processed in 0.029634 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表