C#代码练习题

达达布卜 2020-10-18 09:21:45
如题:输入一个字符串str1,删除str1中其中所有的0—9的数字字符,输出处理后的字符串 新手小白,求解,谢谢
...全文
7279 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziqi0716 2020-10-23
  • 打赏
  • 举报
回复
引用 33 楼 好奇都是要学的 的回复:
[quote=引用 32 楼 ziqi0716 的回复:]还是不改了,免得被你们口水淹死.
代码交流而已,哪来的口水, 我口水你了?我是按照你的代码去做的判断,我可能说错了。你可以指出。 有代码在那谁还能乱说啊。 在说我们写代码的都是对事不对人。 每次的辩论,争锋相对都可以帮助自己更好的认知代码的执行效率。 代码本来每个人的思想就不同,都融入一起相处更好的办法岂不是更好 我说出了几种办法,你也提出了你的想法。 我们效验过,了解了。。 这就是以武会友吧。[/quote] 嗯,理解万岁~
  • 打赏
  • 举报
回复
引用 32 楼 ziqi0716 的回复:
还是不改了,免得被你们口水淹死.
代码交流而已,哪来的口水, 我口水你了?我是按照你的代码去做的判断,我可能说错了。你可以指出。 有代码在那谁还能乱说啊。 在说我们写代码的都是对事不对人。 每次的辩论,争锋相对都可以帮助自己更好的认知代码的执行效率。 代码本来每个人的思想就不同,都融入一起相处更好的办法岂不是更好 我说出了几种办法,你也提出了你的想法。 我们效验过,了解了。。 这就是以武会友吧。
  • 打赏
  • 举报
回复
引用 34 楼 ziqi0716 的回复:
[quote=引用 33 楼 好奇都是要学的 的回复:][quote=引用 32 楼 ziqi0716 的回复:]还是不改了,免得被你们口水淹死.
代码交流而已,哪来的口水, 我口水你了?我是按照你的代码去做的判断,我可能说错了。你可以指出。 有代码在那谁还能乱说啊。 在说我们写代码的都是对事不对人。 每次的辩论,争锋相对都可以帮助自己更好的认知代码的执行效率。 代码本来每个人的思想就不同,都融入一起相处更好的办法岂不是更好 我说出了几种办法,你也提出了你的想法。 我们效验过,了解了。。 这就是以武会友吧。[/quote] 嗯,理解万岁~[/quote] 有事没事多交流,提高生存本领。
wanghui0380 2020-10-22
  • 打赏
  • 举报
回复
引用 22 楼 ziqi0716 的回复:
https://github.com/zhanggaolei001/TestReplace 测试结果
看博客园的粉,就喜欢折腾这些没有啥意义的玩意,算法??有任何算法么? 我能告诉你还有20多种回字写法么? Regex.Replace(str1, "[0-9]", ""); ---------------------------------- 甚至俺们还可以平行计算,分布式计算么 多玩点有意义的事情,少折腾点博客园式的这个vs那个
ziqi0716 2020-10-22
  • 打赏
  • 举报
回复
https://github.com/zhanggaolei001/TestReplace 测试结果
ziqi0716 2020-10-22
  • 打赏
  • 举报
回复
还是不改了,免得被你们口水淹死.
  • 打赏
  • 举报
回复
引用 27 楼 ziqi0716 的回复:
[quote=引用 25 楼 好奇都是要学的 的回复:][quote=引用 23 楼 wanghui0380 的回复:][quote=引用 22 楼 ziqi0716 的回复:]https://github.com/zhanggaolei001/TestReplace 测试结果
看博客园的粉,就喜欢折腾这些没有啥意义的玩意,算法??有任何算法么? 我能告诉你还有20多种回字写法么? Regex.Replace(str1, "[0-9]", ""); ---------------------------------- 甚至俺们还可以平行计算,分布式计算么 多玩点有意义的事情,少折腾点博客园式的这个vs那个[/quote] 他的代码我下了,二种替换, 他的循环次数都不同, 偷换概念。 结果都是替换0到9数据, 时间一个是循环字符长度, 一个是循环字符长度*10 。 时间肯定不同啊, 字符串越长, 二者的中间时间差越大[/quote] 你可以改代码,发pr,都是透明的.[/quote] 我为什么要改你代码,我就是指出你二个方法的不同之处。和时间差出在哪里! 你认为我说错了吗? 1万长的字符串,你第一个方法实际循环1万*(10-替换个数) 第二种方法 就是1万次。而且上面熊猫已经改了 你可以用Regex.Replace(str1, "[0-9]", ""); 试试啊, 1万长的字符串。
ziqi0716 2020-10-22
  • 打赏
  • 举报
回复
引用 23 楼 wanghui0380 的回复:
[quote=引用 22 楼 ziqi0716 的回复:]https://github.com/zhanggaolei001/TestReplace 测试结果
看博客园的粉,就喜欢折腾这些没有啥意义的玩意,算法??有任何算法么? 我能告诉你还有20多种回字写法么? Regex.Replace(str1, "[0-9]", ""); ---------------------------------- 甚至俺们还可以平行计算,分布式计算么 多玩点有意义的事情,少折腾点博客园式的这个vs那个[/quote] 你从哪儿看出来我是博客园的粉?
ziqi0716 2020-10-22
  • 打赏
  • 举报
回复
引用 26 楼 wanghui0380 的回复:
[quote=引用 25 楼 好奇都是要学的 的回复:][quote=引用 23 楼 wanghui0380 的回复:][quote=引用 22 楼 ziqi0716 的回复:]https://github.com/zhanggaolei001/TestReplace 测试结果
看博客园的粉,就喜欢折腾这些没有啥意义的玩意,算法??有任何算法么? 我能告诉你还有20多种回字写法么? Regex.Replace(str1, "[0-9]", ""); ---------------------------------- 甚至俺们还可以平行计算,分布式计算么 多玩点有意义的事情,少折腾点博客园式的这个vs那个[/quote] 他的代码我下了,二种替换, 他的循环次数都不同, 偷换概念。 结果都是替换0到9数据, 时间一个是循环字符长度, 一个是循环字符长度*10 。 时间肯定不同啊, 字符串越长, 二者的中间时间差越大[/quote] 说过了,那是博客园粉,博客园粉脑袋里喜欢装什么?当然是String 和StringBuiler,各种血案啊。 so,他到底展示了个啥,当然不是什么给你展示算法。他当然是给你展示正则不如字典,字典不如 asc值比大小 他当然给你展示string+string不如stringBuilder 作为博客园的粉,技术不算啥,不会聊String+string的血案才是算对不起那些人的教导[/quote] 别乱带帽子,别没事儿找事儿, talk is cheap, show me your code
ziqi0716 2020-10-22
  • 打赏
  • 举报
回复
引用 25 楼 好奇都是要学的 的回复:
[quote=引用 23 楼 wanghui0380 的回复:][quote=引用 22 楼 ziqi0716 的回复:]https://github.com/zhanggaolei001/TestReplace 测试结果
看博客园的粉,就喜欢折腾这些没有啥意义的玩意,算法??有任何算法么? 我能告诉你还有20多种回字写法么? Regex.Replace(str1, "[0-9]", ""); ---------------------------------- 甚至俺们还可以平行计算,分布式计算么 多玩点有意义的事情,少折腾点博客园式的这个vs那个[/quote] 他的代码我下了,二种替换, 他的循环次数都不同, 偷换概念。 结果都是替换0到9数据, 时间一个是循环字符长度, 一个是循环字符长度*10 。 时间肯定不同啊, 字符串越长, 二者的中间时间差越大[/quote] 你可以改代码,发pr,都是透明的.
wanghui0380 2020-10-22
  • 打赏
  • 举报
回复
引用 25 楼 好奇都是要学的 的回复:
[quote=引用 23 楼 wanghui0380 的回复:][quote=引用 22 楼 ziqi0716 的回复:]https://github.com/zhanggaolei001/TestReplace 测试结果
看博客园的粉,就喜欢折腾这些没有啥意义的玩意,算法??有任何算法么? 我能告诉你还有20多种回字写法么? Regex.Replace(str1, "[0-9]", ""); ---------------------------------- 甚至俺们还可以平行计算,分布式计算么 多玩点有意义的事情,少折腾点博客园式的这个vs那个[/quote] 他的代码我下了,二种替换, 他的循环次数都不同, 偷换概念。 结果都是替换0到9数据, 时间一个是循环字符长度, 一个是循环字符长度*10 。 时间肯定不同啊, 字符串越长, 二者的中间时间差越大[/quote] 说过了,那是博客园粉,博客园粉脑袋里喜欢装什么?当然是String 和StringBuiler,各种血案啊。 so,他到底展示了个啥,当然不是什么给你展示算法。他当然是给你展示正则不如字典,字典不如 asc值比大小 他当然给你展示string+string不如stringBuilder 作为博客园的粉,技术不算啥,不会聊String+string的血案才是算对不起那些人的教导
  • 打赏
  • 举报
回复
引用 23 楼 wanghui0380 的回复:
[quote=引用 22 楼 ziqi0716 的回复:]https://github.com/zhanggaolei001/TestReplace 测试结果
看博客园的粉,就喜欢折腾这些没有啥意义的玩意,算法??有任何算法么? 我能告诉你还有20多种回字写法么? Regex.Replace(str1, "[0-9]", ""); ---------------------------------- 甚至俺们还可以平行计算,分布式计算么 多玩点有意义的事情,少折腾点博客园式的这个vs那个[/quote] 他的代码我下了,二种替换, 他的循环次数都不同, 偷换概念。 结果都是替换0到9数据, 时间一个是循环字符长度, 一个是循环字符长度*10 。 时间肯定不同啊, 字符串越长, 二者的中间时间差越大
  • 打赏
  • 举报
回复
for (int i = 0; i < 10; i++) { str1 = str1.Replace(i.ToString(), ""); } 你这循环相当于 10*(10000-n字符) 循环。 而你用的 foreach (var chr in str2) { if (chr < 48 || chr > 57) { result.Append(chr); } } 就是循环10000 次, foreach本身就比FOR快, 你还用了chr < 48 || chr > 57 批次替换, 循环次数都不同,你怎么比较的 第二种用过是 foreach (var chr in str2) { if (chr != 48) { result.Append(chr); } } foreach (var chr in str2) { if (chr != 49) { result.Append(chr); } } foreach (var chr in str2) { if (chr != 50) { result.Append(chr); } } 这次10次, 才是跟 你第一种写法同样的循环, 如果按照你这么写, 你用 Regex.Replace(str1, "[0-9]", ""); 和你第二种比, 看看哪个快。 真搞不懂 你弄个循环就差了N倍的来测试有什么用。这是10000长, 如果是10万长度,那差距就是 10万次循环 和 10*(10万-n字符) 循环 时间差距更大。
  • 打赏
  • 举报
回复
引用 15 楼 ziqi0716 的回复:
[quote=引用 14 楼 好奇都是要学的 的回复:][quote=引用 12 楼 ziqi0716 的回复:][quote=引用 10 楼 好奇都是要学的 的回复:][quote=引用 7 楼 ziqi0716 的回复:][quote=引用 5 楼 好奇都是要学的 的回复:]for (int i = 0; i < 10; i++) { str = str.Replace(i.ToString(), string.Empty); } 这种事最简单了,无论str多长, 都10次循环。 用循环对每个字符进行判断 这种要用到FOR 和 IF 判断, 当字符大小等于'0'-'9' 还麻烦了点 字符还有对应的ASCII值, 那就更麻烦了 还可以用 try catch 来判断这个值是不是数值。 办法很多的。 你学习阶段可以挨个试试。 每个都理解最好了
你的代码缺失只是10次循环,然而,Replace函数里面的循环你没有考虑.[/quote] 居然考虑人家内部机制,你这意思都别用Replace , 自己写个方法代替Replace呗。 那你用字符串的indexOf , 数组的contains, 拆分字符Split, 都别用了。[/quote] 哦?考虑内部机制错了?那你说这个题楼主有必要问吗?假如面试时候出这个题,你给我来句用.net自己的实现的函数?我出题给寂寞?[/quote] 有轮子不用,你自己造去吧。 indexOf ,contains, Split等,你都可以自己造。 [/quote] 杠精?我只是想告诉大家,如果拿时间复杂度来考量,这个10循环是有问题的,不能真正反映时间复杂度.废话,重复造轮子自然不可取,但这跟算法讨论有关系吗?[/quote] 所问非所答 是要显示你懂的很多?人家都讨论代码实现, 你研究到了代码实现的原理,算法,逻辑了? 研究Replace原理有什么用? 你告诉我。 你要重写个Replace吗? 他有研究这个时间不如多写点其他功能的代码来提高自己的功能实现了。 就算我工作了10年也不会研究Replace的原理。 我也是研究数据库执行, left on where a.id=b.id 哪个更好。 多进程, 多负荷,高并发。 NODE.JS, VUE.JS 。webapi 要看的东西多了。 连JS里都有Replace,你研究出来JS里和 .net里 他们机制一样不 别说谁抬杠, 你问问楼主, 谁的回答对他更有意义。 自我陶醉说些高大上的东西实际对他目前阶段一点意义没有。 提问人最有发言权
  • 打赏
  • 举报
回复
引用 16 楼 ziqi0716 的回复:
[quote=引用 13 楼 好奇都是要学的 的回复:]人家就是个学生,来问个题, 你帮他扩展思路就好了。 你只是提了一嘴机制, 根本没有说具体Replace 是什么机制。 如何运行的。 如果Replace 是用的for循环来完成替换的 那可以做实验啊, 一个1万长度的字符串, 自己用FOR循环替换, 和 直接Replace 替换。 看看消耗的时间,性能, CUP 还有你说的算法什么的。 人家造好轮子了。 你用就完事了, 你是能优化, 还是想自己重新造个轮子。 对他来说 能会用.net带的各个方法, dll引用就能干很多事了,如果他感兴趣可以去看看原理,算法。 他问的东西和Replace内部是不是FOR循环 根本没关系。 我高中就学c语言的,那时候轮子很少, 基本都要自己写。 现在轮子这么多了, 很成熟了, 直接用不就好了,想了解就去了解, 不想了解就研究研究高并发,数据库什么的, 比研究轮子好多了
F12直接就能看源码会不会?咋的,我吧源码给贴上来?[/quote] F12能看到源码? 你咋看的。F12只有注释说明,你告诉我有源码。 是不是让我找到TEMP里面的DLL 反编译啊。 人家就是问替换,你和问的人说啥那? 人家问你 A怎么替换成B, 你跟人家说你思考下A替换B的原理, C++ , C语言,你怎么不告诉他看汇编 010101,内存如何操作的。你是哈子吗? 你回答的人家的问题, 人家知道怎么处理了吗? 你是站在问题人的角度回答 ,还是站在自己的角度回答,你回答的东西,人家知道怎么操作吗?
达达布卜 2020-10-21
  • 打赏
  • 举报
回复
在座的都是前辈,感觉学到了很多,非常感谢你们的回答
ziqi0716 2020-10-21
  • 打赏
  • 举报
回复
好,我错了,楼上牛逼
极客诗人 2020-10-20
  • 打赏
  • 举报
回复
引用 8 楼 ziqi0716 的回复:
同5楼,replace的实现中也有循环的.
那直接按length去除呗
ziqi0716 2020-10-20
  • 打赏
  • 举报
回复
引用 6 楼 笑看旋律 的回复:
最简单的应该是循环10次 通过replace移除
同5楼,replace的实现中也有循环的.
ziqi0716 2020-10-20
  • 打赏
  • 举报
回复
引用 5 楼 好奇都是要学的 的回复:
for (int i = 0; i < 10; i++) { str = str.Replace(i.ToString(), string.Empty); } 这种事最简单了,无论str多长, 都10次循环。 用循环对每个字符进行判断 这种要用到FOR 和 IF 判断, 当字符大小等于'0'-'9' 还麻烦了点 字符还有对应的ASCII值, 那就更麻烦了 还可以用 try catch 来判断这个值是不是数值。 办法很多的。 你学习阶段可以挨个试试。 每个都理解最好了
你的代码缺失只是10次循环,然而,Replace函数里面的循环你没有考虑.
加载更多回复(13)

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧