搜索
aardio官方社区 门户 查看主题

去重练习

发布者: cbtan | 发布时间: 2011-1-4 10:03| 查看数: 25991| 评论数: 56|帖子模式

本帖最后由 cbtan 于 2011-12-16 16:06 编辑
  1. str=/*
  2. aaaa
  3. aaaa
  4. bbbb
  5. aaaa
  6. bbbb
  7. aaaa
  8. aaaa
  9. bbbb
  10. aaaa
  11. bbbb
  12. aaaa
  13. aaaa
  14. bbbb
  15. aaaa
  16. bbbb
  17. */

  18. //你的处理代码//

  19. //之后str里面只能含有  aaaa bbbb
  20. //table有个很好的特性 就是 "键" 是没有重复的
  21. //通过这个简单的列子,希望大家能了解这个特性
复制代码

暂时还是设置 隐藏


str=/*
aaaa
aaaa
bbbb
aaaa
bbbb
*/


tab={}
去重={}
str=string.split(str,
'<\r\n>') //拆分进str
io.open()
for(k,v in str){
   
if(not 去重[v]){
        
sleep(2000) //可删除
        io.print("我没有找到   "+v) //可删除
        io.print("") //可删除
        
        去重[v]=1
        
        
sleep(2000) //可删除
        io.print("已将数值   " + v + "   记录到 去重 的键里面了") //可删除
        io.print("") //可删除
        
        table.push(tab,v)
        
        
sleep(2000) //可删除
        io.print("已将数值   " + v + "   压入进 tab 了") //可删除
        io.print("") //可删除
    }
   
else { //可删除
        io.print("找到记录,不操作") //可删除
        io.print("") //可删除
    } //可删除
   
}
io.print(
"=================================")
io.print(string.join(tab,
'\n')) //拼接到一起

execute("pause")
io.close()


最新评论

落伍者 发表于 2011-1-4 10:46:02

[i=s] 本帖最后由 落伍者 于 2011-1-4 10:47 编辑 [/i] str=[color=#008000]/* aaaa aaaa bb

本帖最后由 落伍者 于 2011-1-4 10:47 编辑

str=/*
aaaa
aaaa
bbbb
aaaa
bbbb
aaaa
aaaa
bbbb
aaaa
bbbb
aaaa
aaaa
bbbb
aaaa
bbbb
*/


table.find=
function(tab,str){
   
for(k,v in tab){
        
if(v=str){
            
return k;
        }
   
    }
   
}

tab={}
for m in string.gmatch(str,"\w+") {
   
if(!table.find(tab,m)){
        table.push(tab,m)
    }
}


str=
""
for(k,v in tab){
    str+=v+
'\r\n'

}

io.open()
io.print(str)
execute("pause")
io.close()


//这个只是一种方法,期待看到更多的...
jsniu 发表于 2011-1-5 17:38:31

[code] io.open();//打开控制台 undup = function(str,sep){

  1. <!--StartFragment   --> io.open();//打开控制台

  2. undup = function(str,sep){
  3.     var tab = {};
  4.     var tab1 = string.split(str,sep);
  5.     for(k,v in tab1){
  6.         if(v!=""){
  7.             tab[v] = 0;
  8.         }
  9.     }
  10.    
  11.     var out = "";
  12.     for(k,v in tab){
  13.         out += k+sep;
  14.     };
  15.     return out;
  16. }

  17. var str=/*
  18. aaaa
  19. aaaa
  20. bbbb
  21. aaaa
  22. bbbb
  23. aaaa
  24. aaaa
  25. bbbb
  26. aaaa
  27. bbbb
  28. aaaa
  29. aaaa
  30. bbbb
  31. aaaa
  32. bbbb
  33. */
  34. var sep = '\r\n';

  35. str = undup(str,sep);
  36. io.print(str);

  37. execute("pause") //按任意键继续
  38. io.close();//关闭控制台

复制代码

namwonsta 发表于 2011-1-5 18:59:20

str=/* aaaa aaaa bbbb aaaa bbbb aaaa aaaa bbbb aaaa bbbb aaaa aaaa

str=/*
aaaa
aaaa
bbbb
aaaa
bbbb
aaaa
aaaa
bbbb
aaaa
bbbb
aaaa
aaaa
bbbb
aaaa
bbbb
*/
io.open();

var tab = {};
去重 = function(a){
        if(!tab[a]){
                tab[a]=true;
                return a;
        }else{
                return "";
        }
}

str2 = string.replace(str,"(.+?\r\n)",去重)
io.print(str2,#str2);

点评

甚妙!学习了  发表于 2011-1-7 16:57
hgbuser 发表于 2011-1-6 16:56:54

[b]回复 [url=forum.php?mod=redirect&goto=findpost&pid=4371&ptid=660][color=Olive]n

回复 namwonsta 的帖子

受教了,这就是技巧啊。
hgbuser 发表于 2011-1-7 14:34:38

去重 = function(a){.........} str2 = string.replace(str,"(.+?\r\n)",去重) “去重”这个函数

去重 = function(a){.........}
str2 = string.replace(str,"(.+?\r\n)",去重)
“去重”这个函数的参数“a”是如何传递进去的?我看不明白

点评

帮助文件里的 string.replace 说明 : 4、在string.replace中使用函数处理分组捕获 这节看看  发表于 2011-1-7 15:06
wpig 发表于 2011-1-11 22:10:45

看看学习下

看看学习下
Auto 发表于 2011-1-12 14:49:36

[b]回复 [url=forum.php?mod=redirect&goto=findpost&pid=4371&ptid=660][color=Olive]n

回复 namwonsta 的帖子


str=/*

aaaa
aaaa
bbbb
aaaa
bbbb
aaaa

aaaa
bbbb

aaaa
bbbb
aaaa

aaaa
bbbb
aaaa
bbbb
*/

io.open();

var tab = {};
去重 =
function(a){
        
if(!tab[a]){
                tab[a]=
true;
               
return a;
        }
else{
               
return "";
        }
}

str2 = string.replace(str,
"(.+?\r\n)",去重)
io.print(str2,#str2);

execute("pause") //按任意键继续
io.close();//关闭控制台


//如果里面有空格要怎么处理掉?

点评

表象都是浮云,背后的思想才是根本。大千世界芸芸众生,为什么会有那么多烦恼。:)  发表于 2011-1-12 17:03
cbtan 发表于 2011-1-12 15:24:26

[b]回复 [url=forum.php?mod=redirect&goto=findpost&pid=4901&ptid=660][color=Olive]A

回复 Auto 的帖子

str=/*
1
aaaa
aaaa
bbbb
aaaa
bbbb
aaaa

aaaa
bbbb
1
aaaa
bbbb
aaaa
1
aaaa
bbbb
aaaa
bbbb
*/

io.open();

var tab = {};
去重 =
function(a){
        
if(#a>2 and !tab[a]){
                tab[a]=
true;
               
return a;
        }
        
else{
               
return "";
        }
}

str2 = string.replace(str,
"(.+?\n)",去重)
io.print(str2,#str2);

execute("pause") //按任意键继续
io.close();//关闭控制台

点评

同意: 5.0 真棒: 5.0
同意: 5 真棒: 5
非常好,拿走用了 多谢  发表于 2011-12-2 23:51
Auto 发表于 2011-1-12 15:57:11

[b]回复 [url=forum.php?mod=redirect&goto=findpost&pid=4902&ptid=660][color=Olive]c

回复 cbtan 的帖子

厉害!!
落伍者 发表于 2011-1-12 16:28:22

[b]回复 [url=forum.php?mod=redirect&goto=findpost&pid=4902&ptid=660][color=Olive]c

回复 cbtan 的帖子

a!=""
难道不行吗?

点评

自己运行次嘛!  发表于 2011-1-12 16:32
chencong3166 发表于 2011-1-14 03:18:55

偶要学习~{:lol}

偶要学习~
zjgtem 发表于 2011-1-18 11:07:57

我来学习一下

我来学习一下
988668 发表于 2011-3-22 11:03:32

查找重复在许多时候都是能用上的

查找重复在许多时候都是能用上的
o00viw 发表于 2011-3-28 18:39:46

许多技巧,需要消化一下。

许多技巧,需要消化一下。
sj798 发表于 2011-3-31 07:37:11

处理字符正则首推,aardio更独特

处理字符正则首推,aardio更独特
jzzb 发表于 2011-4-2 10:47:42

[b]回复 [url=forum.php?mod=redirect&goto=findpost&pid=5255&ptid=660][color=Olive]z

回复 zjgtem 的帖子

参观一下,如有不便,请多多包涵。
exingfu2011 发表于 2011-4-2 15:13:45

请问,控制台是在哪运行的,求指教,谢谢

请问,控制台是在哪运行的,求指教,谢谢
iliveup 发表于 2011-4-2 16:56:55

不熟悉,看上去很吃力。

不熟悉,看上去很吃力。
123下一页

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2017-11-21 16:08 , Processed in 0.078125 second(s), 25 queries , WinCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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