弯路

那些年学编程走过的弯路 秋招中我走过的那些弯路 阅读详情

今天,在处理一大段数据的时候,走了不少的弯路

数据格式是类似这样:

  2007ag          20***ag         이윤미          xxym2***g.co.kr         							
  222630          nr***an          한누리          leek***lyasiana.com     							
  aacm            152***57         이기훈          leek***lyasiana.com     							
  agmaster        agm***ster       안그라픽스        leek***flyasiana.com     							
  agtest          ag***est         테스트아이디       tes***test.net           							
  ahn2011         dksr***fkvlrtm   ahn          sloh@ag.co.kr  

我要做的是把每行的4列数据都提取出来。

因为之前我处理的大段数据,分隔符都是比较统一的逗号或者是其他比如破折号之类的

所以,我一般采用对逐个关键字(比如逗号)的定位,把坐标写入列表,最后,统一提取列表的第XX个的位置就好了

以下是代码块:

//分隔符
string SpitStrFst = " ";
string SpitStrOthers = " ";

List<int> Pos = new List<int>();
Pos.Add(Str.IndexOf(SpitStrFst, 0));
for (int i = 0; i < Str.Length; )
{
    int Find = Str.IndexOf(SpitStrOthers, i);
    if (Find == -1) break;
    Pos.Add(Find);
    i = Find + 1;
}

但是今天的问题就出现在这,两个数据之间的空格数量是不定的(数据源是从Excel之间复制来的)所以总是不能很好的对数据定位

比如,得到的Pos列表是这样的结果:


很明显,我要做的是,把这些连续的排列,做个清理,只保留一个就够(比如8,9,10,11,12,13,14,15,16,17只保留8)

开始,我这样写,思路是,如果下一个定位和与上一个只差1,说明是连续的,则舍弃:

//分隔符
string SpitStrFst = " ";
string SpitStrOthers = " ";

List<int> Pos = new List<int>();
Pos.Add(Str.IndexOf(SpitStrFst, 0));
for (int i = 0; i < Str.Length; )
{
    int Find = Str.IndexOf(SpitStrOthers, i);
    try
    {
        if (Find == -1) break;
        if (Pos.Count > 0)
        {
            if (Find == Pos[Pos.Count - 1] + 1)
            {
                throw new Exception("Continue2Next");
            } 
        }
        Pos.Add(Find);
        if (Find == Str.Length) break;
    }
    catch
    {
    }
    finally
    {
        i = Find + 1;
    }
}
我也是后来,才发现这是个逻辑问题,因为,代码的确是像我说的一样舍弃了,但是Pos变成这样了:0,0,2,4,6,8.....

我发觉,单单提取下一位也不行,需要检测,如果这已经是下一位了,需要检测前两位是否是连续的……慢慢,思路开始复杂起来。

这时候,脑海中一个声音跳出来,这个问题真的这么复杂么!?

我打断了继续复杂化的思路,开始重新审视整个数据,我发现,问题的确是出在空格的长度上,如果……

如果,我把多个空格合并成一个,那样的话,不就和之前的一样能处理了么,于是,我写了这样的函数,用来把多个空格合并成一个:

public static string MultiSpacesToOne(string InputStr)
{
    List<int> Pos = new List<int>();
    for (int i = 0; i < InputStr.Length; i++)
    {
        if (InputStr[i] == ' ') Pos.Add(i);
    }
    for (int i = Pos.Count - 1; i > 0; i--)
    {
        int Tail = Pos[i];
        int BeforTail = Pos[i - 1];
        if (BeforTail == Tail - 1)
        {
            InputStr = InputStr.Remove(Tail, 1);
        }
    }
    return InputStr;
}

然后,显然,问题很快解决。而代码,除了这个新加入的函数,要做改变的,仅仅是加了这一句话:

Str = MultiSpacesToOne(Str);

我在想,假如,我们遇到问题时,如果是从问题的源头开始思考解决办法,而不是先从修复的角度,是不是会更好的解决很多问题呢。

一直都是,我们会觉得推翻现有的,重新设计一个东西,一定要复杂的多,其实,我们错了,错在惯性思维上,maybe,站在全局的角度重新思考才是捷径!

BlueROV加舵机控制以及走过的弯路 BlueROV加舵机控制以及走过的弯路 因实验需求,需要在BlueROV上加上一个一自由度的机械臂,由一个水下舵机控制,水下舵机需要通过PWM控制,PWM输出由手柄控制。 思路也很简单:手柄——pixhawk——舵机 就是弯路走了好久。。。。。 一、手柄资源不足? BlueROV在下水实验后发现,现有的按键基本都已经使用。只有上面还有两个按键没有使用,并且不具有保持功能 后面发现,手柄上有一个按键可以设置为shift按键,按住shift键,在按住别的按键可以切换按键的第二功能 二、PWM控制程序需要自己写? 阅读详情

相关推荐

Flink SQL数据血缘实战:如何用Calcite追踪字段级数据流向(附源码示例)

本文深入探讨了如何利用Apache Calcite解析Flink SQL执行计划,实现字段级数据血缘的追踪。通过扩展Calcite的元数据处理器,特别是针对Flink特有的Snapshot等节点,文章提供了从获取优化后的逻辑计划到提取并可视化血缘关系的完整实战方案,并附有核心源码示例,帮助开发者构建实时数仓的数据治理能力。

weixin_29032337的博客 143

怎么避免一些不必要的弯路

(1)弯路走多了就可以避免不必要的弯路! (2)在走弯路之前先多思考思考!!!

h_tinkinginjava的博客 287

PLSQL Developer新手必看:如何避免安装过程中的常见坑

本文为PL/SQL Developer新手提供了详尽的安装与配置避坑指南。从版本选择、注册码使用、汉化包安装到Oracle客户端连接配置,逐一解析常见问题并提供解决方案,帮助开发者快速搭建稳定的PL/SQL开发环境,顺利开启Oracle数据库编程工作。

g9h0i1的博客 654

我所走过的弯路

电影,讲述一段故事,给人一段回味,这就足够了。 电影不复杂,不需要追根究底。我们的生活,也是由若干简单的模式所重复演化而成。这些模式若符合我们的心性和期望,我们就快乐,反之则烦躁,烦躁蓄积到一定程度就会引发崩溃。生活就是这么简单。 改善自己生活其中的模式,你就能获得快乐。          无名特质: 无名特质是我们感受到自身,感受到欢喜自由的时刻; 它存在于地球上的所有生灵中,使我们自然、

瀞心:软件人生 1854

CXL3.0 CDAT(Coherent Device Attributes Table)

在说明CDAT之前,先讲一下CXL中的DOE类型:CXL协议里定义了两种DOE的类型,一种是Compliance就是合规性测试的内容,还有一种就是CDAT(一致性属性表)Memory_Info_Valid是CXL设备的内存配置完成标志,位于DVSEC(Designated Vendor-Specific Extended Capability)的CXL Range X Size Low寄存器中(X为1或2)。

Summer的博客 1438

时间同步中 TOD 与GPRMC和IRIG-B的区别

时间同步中 TOD 与GPRMC和IRIG-B的区别

ftdlk的博客 1730

走弯路,才是人生的常态

黄河滔滔,历经九曲方能一泻入海;雅鲁藏布大峡谷的勘探队伍,一路披荆斩棘,曲折回环,才完成心中的梦想。每个人漫长的人生旅程,不可能是一条平滑的直线,弯路才是人生别无选择的主旋律。      我们一生有过多少为了持守真理而留下的创伤,反而成就了可歌可泣的故事,有那些奇迹,才证明这一生没有白活。人生风景线,仅仅只有长命是不够的,还需要广度和深度才算靓丽。      佛学院的一名禅师在上课时把一幅

黄沙百战穿金甲,不破楼兰终不还。 1169

gmsv源代码c语言,石器时代ABLua的原理、简介、过程、运用、收发

操作原理(一)服务端:服务器源文件客户端:客户所操作的程序(既是游戏客户端)接口:既是某项功能(例如:鼠标点击,文字发送,战斗,观战,人物动作等)返回的值ABlua:在源代码中添加的整套引擎作为回调接口--lua所实现的功能是基于服务端源码添加的接口由该接口与客户端发送封包实现功能源码里是否有ABlua回调接口?例如:源码里的gmsv/battle.c文件(既是战斗回调文件)以下为简单描述C给予l...

weixin_35223575的博客 2412

非走不可的弯路

非走不可的弯路        在青春的路口,曾经有那么一条小路若隐若现,召唤着我。                         母亲拦住我:“那条路走不得”。        我不信。       “我就是从那条路走过来的,你还有什么不信?”       “既然你能从那条路走过来,我为什么不能?”       “我不想让你走弯路。”       “但是我喜欢,而且我不怕。”     

dahaidao的专栏 1047

C#上位机实战:借助NetToPLCSim与西门子S7-1200仿真通信全攻略

本文详细介绍了如何使用C#开发上位机程序,通过NetToPLCSim与西门子S7-1200进行仿真通信的全过程。从环境准备、PLC仿真环境搭建、网络配置到C#代码实现,提供了完整的实战指南和常见问题解决方案,帮助开发者快速掌握工业自动化通信技术。

weixin_30596343的博客 441

C++从入门到进阶的系列书籍推荐(22本书)

要多读书,读好书!一本书要多读几遍才好,每次都可能有新的收获!特别在是有一定的工作年限和工作经验之后!读书百遍,其义自见! 下面就给大家推荐一下C++程序员进阶需要读的经典书籍: 1、C++入门书籍 C++是在C语言的基础上发展而来的,要学习C++之前需要先学习C语言。有了C语言基础之后再去学习C++。 1.1、C语言程序设计(谭浩强) 该书被公认为学习C语言程序设计的优秀教材,被全国大多数高校选用,是学习C语言的主流用书。本书比较通俗易懂,是初入者必备的书籍。 ........

dvlinker的技术专栏 4万+

不得不走的弯路

在青春的路口,曾经有那么一条小路若隐若现,召唤着我。 母亲拦住我:"那条路走不得." 我不信. "我就是从那条路走过来的,你还有什么不信?" "既然你能从那条路上走过来,我为什么不能?" "我不想让你走弯路." 但是我喜欢,而且我不怕 母亲心疼地看我好久,然后叹口气:"好吧,你这个倔强的孩子,那条路很难走,一路小心." 上路后,我发现母亲没有骗我,那的确是条弯路,我碰壁,摔跟头,有...

无名小卒 214

大语言模型应用指南:幻觉和偏见问题

大语言模型应用指南:幻觉和偏见问题 1. 背景介绍 1.1 大语言模型的发展历程 1.1.1 早期的语言模型 1.1.2 Tr

AI天才研究院 959

新手如何避开机器学习过程中的弯路

一位转型AI的朋友最近抱怨,“走过的最远的路,就是机器学习过程中的弯路”,然后开始各种blablabla,从论文的坑,到模型的坑,再到培训的坑...一路吐槽。 尤其是论文,他骂道:“最讨厌的就是那种,高高在上、假装清高、站着说话不腰疼、戳不到痛点的论文。比如那一堆只能在理论中刷存在感,实际落地中只能‘呵呵哒’的论文,根本就是浪费时间。” 的确,对于现在刚刚入行的机器学习新人来说,不怕吃苦,但最...

优快云高校俱乐部官方博客 564

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

你走过最长的路,就是机器学习过程中的弯路

营长的一位转型AI的朋友,最近对营长抱怨,“走过的最远的路,就是机器学习过程中的弯路”,然后开始各种blablabla,从论文的坑,到模型的坑,再到培训的坑...一路吐槽。尤其是论文,他骂道:“最讨厌的就是那种,高高在上、假装清高、站着说话不腰疼、戳不到痛点的论文。比如那一堆只能在理论中刷存在感,实际落地中只能‘呵呵哒’的论文,根本就是浪费时间。”的确,对于现在刚刚入行的机器学习新人来说,不怕吃苦...

Lunaqi的博客 1536

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

尊重经验的人,才能少走弯路

学历代表过去,只有学习力才能代表将来,尊重经验的人,才能少走弯路 有一个博士分到一家研究所,成为学历最高的一个人。 有一天他到单位后面的小池塘去钓鱼,正好正副所长在他的一左一右,也在钓鱼。 他只是微微点了点头,这两个本科生,有啥好聊的呢? 不一会儿,正所长放下钓竿,伸伸懒腰,蹭蹭蹭从水面上如飞地走到对面上厕所。 博士眼睛睁得都快掉下来了。水上飘?不会吧?这可是一个池塘啊。 正所长上

dtm19931001的专栏 743

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

学Python再学C++是走弯路?

学完Python再学C++并不是“走弯路”,而是为学生构建了更广阔的编程技能体系。Python让初学者轻松上手,而C++则带领学生深入计算机的核心,掌握高效的编程技巧。两者在编程世界中各有优势,相辅相成。因此,无论是先学Python还是后学C++,只要学生目标明确、兴趣浓厚,都是一条值得探索的学习路径。最重要的是,孩子在学习编程的过程中能够不断积累思维能力和技术实力,为未来的职业发展奠定坚实基础。

邓校长的编程课堂专栏 5115

少走弯路的10个忠告

少走弯路的10个忠告 刚刚走上社会的年轻人,充满了蓄势待发的豪情、青春的朝气、前卫的思想,梦想着丰富的待遇和轰轰烈烈的事业。可是,社会毕竟是一所包罗万象、喧嚣复杂的大学校,这里没有寒暑假,拒绝虚假和肤浅,更拒绝空想和庸碌,难以预告何时开课何时放学。   如何在涉世之初少走弯路,有一个好的开端,开始一番成功的事业?以下是一些先行者积累的10条有益的涉世忠告。好好地遵循、把握这些忠告和...

weixin_30917213的博客 208

成都python培训比较好的机构-成都Python培训班哪个好,怎样才能不走弯路学习

原标题:成都Python培训班哪个好,怎样才能不走弯路学习python入门有多难?自学弯路有多少?只有当自己开始学习了才能体会到其中的艰难,达妹遇见过很多来咨询的学员,他们一开始都打算自学python,但最后都因为学不会,学得太慢而放弃自学,改投达内学习。其实主要是学习中走了很多弯路,而今天达妹就来给大家分享一下,自学python时经常走过的弯路,希望各位都能够了解,避免踩坑! 1.不要看到别人的...

weixin_37988176的博客 302

盘点机器学习过程中的弯路,带你避坑!

授权自AI科技大本营(ID:rgznai100)本文长度为6900字,建议阅读6分钟本文为你解析机器学习路上的弯路,希望能够帮你避坑,更好的学习。一位转型AI的朋友,最近对我抱怨,“走过的最远的路,就是机器学习过程中的弯路”,然后开始各种blablabla,从论文的坑,到模型的坑,再到培训的坑...一路吐槽。尤其是论文,他骂道:“最讨厌的就是那种,高高在上、假装清高、站着说话不腰疼、戳不到痛点的论

深度学习世界 1587

多总结多成长,少走弯路..

多总结多成长,少走弯路..

浙水之南 505

【人生感悟】少走弯路的十个忠告

【人生感悟】少走弯路的十个忠告   一、买个闹钟,以便按时叫醒你。贪睡和不守时,都将成为你工作和事业上的绊脚石,任何时候都一样。不仅要学会准时,更要学会提前。就如你坐车去某地,沿途的风景很美,你忍不住下车看一看,后来虽然你还是赶到了某地,却不是准时到达。“闹钟”只是一种简单的标志和提示,真正灵活、实用的时间,掌握在每个人的心中。   二、如果你不喜欢现在的工作,要么辞职不干,要么就闭嘴不言

杨义贤心灵驿站 1138

玹疯:这些年我走过的弯路

简介:从澳洲回国,开启阿里旅程,钉钉高级前端技术专家玹疯与你分享他成长路上的故事。作者 | 玹疯大家好,我是钉钉的前端玹疯。取得是射雕英雄传里黄药师弟子陈玄风的谐音。西安人,05年去澳洲读书,毕业于悉尼大学软件工程专业。在澳大利亚生活学习工作了12年,参加过创业公司,咨询师,世界500强,自主创业,于17年回国加入阿里巴巴,在钉钉做前端开发相关的工作。当我拿到这个 Topic 的时候,第一感觉是实在不好意思去分享成长之路,因为自己的成长并不成功,甚至说走了许多弯路。但是转念一想,去分享下这些弯路,未尝不是一

阿里云开发者 4773

PHP程序员为什么一定要多走一些弯路?正向意义是什么?

PHP程序员走过的每一条弯路,本质上是用“试错成本”交换“不可替代的经验”——这些经验无法通过阅读文档或教程获得,只能在真实的技术挑战中沉淀。

长风破浪会有时的博客 580
上一篇: string与double的互相转换
下一篇: Encoding.GetEncoding 编码列表
拿铁加不加糖
博客等级 码龄16年 75粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值