CN109683881B - 一种代码格式调整方法及装置 - Google Patents

一种代码格式调整方法及装置 Download PDF

Info

Publication number
CN109683881B
CN109683881B CN201811618411.1A CN201811618411A CN109683881B CN 109683881 B CN109683881 B CN 109683881B CN 201811618411 A CN201811618411 A CN 201811618411A CN 109683881 B CN109683881 B CN 109683881B
Authority
CN
China
Prior art keywords
code
preset
character
type
adjustment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811618411.1A
Other languages
English (en)
Other versions
CN109683881A (zh
Inventor
刘硕
史家涛
宋炳雨
许晓梦
张国花
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Weichai Power Co Ltd
Original Assignee
Weichai Power Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Weichai Power Co Ltd filed Critical Weichai Power Co Ltd
Priority to CN201811618411.1A priority Critical patent/CN109683881B/zh
Publication of CN109683881A publication Critical patent/CN109683881A/zh
Application granted granted Critical
Publication of CN109683881B publication Critical patent/CN109683881B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明提供一种代码格式调整方法及装置,在获取需要进行代码格式调整的待处理代码后,基于预设代码特征对待处理代码进行格式调整,得到具有预设格式的目标代码,输出具有预设格式的目标代码,使得不同的待处理代码经过预设代码特征调整后得到的目标代码之间的预设格式相同,进而使得不同待处理代码的格式从多样化向整齐划一过渡,实现不同待处理代码的格式统一,而统一的格式可以让每个程序员能够准确理解代码的思路和用意,显著地提高代码的可读性,利于代码的修改和维护,另外待处理代码可以基于预设代码特征自动进行格式调整,省去程序员调整或设置格式的环节,节省了人为调整时间,提高了调整效率。

Description

一种代码格式调整方法及装置
技术领域
本发明属于软件代码领域,具体为涉及一种代码格式调整方法及装置。
背景技术
随着科学技术的进步,计算机行业也正在快速的发展,其中涉及到软件项目不断的扩大,而一些大型的软件项目往往需要多人团队去研发,例如:软件代码需要多人去协作研发,由于每个人对于对代码的编写格式不同,导致全文代码看起来不美观。
目前将具有不同格式的代码调整为具有统一格式的代码的方式有:预先制定代码格式规范和使用代码编辑器进行辅助,但是不同程序员对于预先制定代码格式规范有不同的理解,使得基于预先制定代码格式规范得到的代码的格式也会不同,同样的在使用代码编辑器时不同程序员对代码编辑器中与格式相关的菜单的设置不同,也会导致通过代码编辑器给出的代码的格式不同。
发明内容
有鉴于此,本发明的目的在于提供一种代码格式调整方法及装置,用于将待处理代码基于预设代码特征自动进行格式调整。技术方案如下:
本发明提供一种代码格式调整方法,所述方法包括:
获取需要进行代码格式调整的待处理代码;
基于预设代码特征对所述待处理代码进行格式调整,得到具有预设格式的目标代码;
输出所述具有预设格式的目标代码,其中不同的待处理代码经过所述预设代码特征调整后得到的目标代码之间的预设格式相同。
优选的,所述基于预设代码特征对所述待处理代码进行格式调整,得到具有预设格式的目标代码包括:
从所述预设代码特征中提取与所述待处理代码匹配的特征;
基于与所述待处理代码匹配的特征,对所述待处理代码进行格式调整,得到具有预设格式的目标代码。
优选的,所述从所述预设代码特征中提取与所述待处理代码匹配的特征包括:
确定所述待处理代码中各个独立组成部分各自对应的类型,所述各个独立组成部分中任一独立组成部分为字符串或字符;
基于所述各个独立组成部分各自对应的类型,从所述预设代码特征中提取与所述类型对应的类型调整特征;
从所述预设代码特征中选取共用调整特征,所述共用调整特征用于对所述待处理代码中除所述独立组成部分之外的部分进行格式限定。
优选的,所述确定所述待处理代码中各个独立组成部分各自对应的类型包括:
获得所述待处理代码中每行字符包括的字符组,其中任意一行字符包括的字符组有:该行字符中第一个字符和第1个空格之间的字符组、该行字符中最后一个字符和第n个空格之间的字符组、第i个空格和第i+1个空格之间的字符组,其中i的取值为2到n-1,n为所述待处理代码中包括的空格总数;
对任一字符组执行以下步骤:
如果该字符组携带的全部内容为数字、运算符、标点符号和预设保留字中的一种,则该字符组的类型为全部内容对应的类型,如果该字符组中字符数量大于1,确定该字符组为一个字符串,如果该字符组中字符数量等于1,确定该字符组为一个字符;
如果该字符组携带的全部内容不包括数字、运算符、标点符号和预设保留字,则该字符组的类型为自变量类型,如果该字符组中字符数量大于1,确定该字符组为一个字符串,如果该字符组中字符数量等于1,确定该字符组为一个字符;
如果该字符组中字符数量大于1且包括至少一个预设字符,则通过所述预设字符对该字符组进行拆分,将预设字符确定为一个字符且该字符的类型与预设字符的类型相同,所述预设字符包括运算符、标点符号和数字中的至少一个;
对通过所述预设字符拆分得到的各部分中任一部分:如果该部分中字符数量等于1,则确定该部分为一个字符且字符的类型为自变量类型,如果该部分中字符数量大于1,则确定该部分为一个字符串,如果该字符串与预设保留字中的一个相同,则确定该字符串的类型为保留字类型,否则确定该字符串的类型为自变量类型。
优选的,所述预设代码特征的获得过程包括:
获得用于得到所述预设代码特征的模板代码;
确定所述模板代码中每种独立组成部分各自对应的所有类型调整特征;
对每种独立组成部分中任一种独立组成部分对应的所有类型调整特征:如果该种独立组成部分对应的一种类型调整特征与该种独立组成部分对应的所有类型调整特征之间的关系满足第一预设关系,则将满足第一预设关系的类型调整特征确定为一种预设代码特征;
确定所述模板代码中适用于每行代码共用的各类共用调整特征;
对各类共用调整特征中任一类共用调整特征:如果该类中的一个共用调整特征与该类所有共用调整特征之间的关系满足第二预设关系,则将满足第二预设关系的共用调整特征确定为一种预设代码特征。
本发明还提供一种代码格式调整装置,所述装置包括:
获取模块,用于获取需要进行代码格式调整的待处理代码;
调整模块,用于基于预设代码特征对所述待处理代码进行格式调整,得到具有预设格式的目标代码;
输出模块,用于输出所述具有预设格式的目标代码,其中不同的待处理代码经过所述预设代码特征调整后得到的目标代码之间的预设格式相同。
优选的,所述调整模块包括:
提取单元,用于从所述预设代码特征中提取与所述待处理代码匹配的特征;
调整单元,用于基于与所述待处理代码匹配的特征,对所述待处理代码进行格式调整,得到具有预设格式的目标代码。
优选的,所述提取单元包括:
确定子单元,用于确定所述待处理代码中各个独立组成部分各自对应的类型,所述各个独立组成部分中任一独立组成部分为字符串或字符;
类型调整特征提取子单元,用于基于所述各个独立组成部分各自对应的类型,从所述预设代码特征中提取与所述类型对应的类型调整特征;
共用调整特征选取子单元,用于从所述预设代码特征中选取共用调整特征,所述共用调整特征用于对所述待处理代码中除所述独立组成部分之外的部分进行格式限定。
优选的,所述确定子单元,具体用于获得所述待处理代码中每行字符包括的字符组,其中任意一行字符包括的字符组有:该行字符中第一个字符和第1个空格之间的字符组、该行字符中最后一个字符和第n个空格之间的字符组、第i个空格和第i+1个空格之间的字符组,其中i的取值为2到n-1,n为所述待处理代码中包括的空格总数;
对任一字符组执行以下步骤:
如果该字符组携带的全部内容为数字、运算符、标点符号和预设保留字中的一种,则该字符组的类型为全部内容对应的类型,如果该字符组中字符数量大于1,确定该字符组为一个字符串,如果该字符组中字符数量等于1,确定该字符组为一个字符;
如果该字符组携带的全部内容不包括数字、运算符、标点符号和预设保留字,则该字符组的类型为自变量类型,如果该字符组中字符数量大于1,确定该字符组为一个字符串,如果该字符组中字符数量等于1,确定该字符组为一个字符;
如果该字符组中字符数量大于1且包括至少一个预设字符,则通过所述预设字符对该字符组进行拆分,将预设字符确定为一个字符且该字符的类型与预设字符的类型相同,所述预设字符包括运算符、标点符号和数字中的至少一个;
对通过所述预设字符拆分得到的各部分中任一部分:如果该部分中字符数量等于1,则确定该部分为一个字符且字符的类型为自变量类型,如果该部分中字符数量大于1,则确定该部分为一个字符串,如果该字符串与预设保留字中的一个相同,则确定该字符串的类型为保留字类型,否则确定该字符串的类型为自变量类型。
优选的,所述装置还包括:
模板代码获得模块,用于获得用于得到所述预设代码特征的模板代码;
类型调整特征确定模块,用于确定所述模板代码中每种独立组成部分各自对应的所有类型调整特征,对每种独立组成部分中任一种独立组成部分对应的所有类型调整特征:如果该种独立组成部分对应的一种类型调整特征与该种独立组成部分对应的所有类型调整特征之间的关系满足第一预设关系,则将满足第一预设关系的类型调整特征确定为一种预设代码特征;
共用调整特征确定模块,用于确定所述模板代码中适用于每行代码共用的各类共用调整特征,对各类共用调整特征中任一类共用调整特征:如果该类中的一个共用调整特征与该类所有共用调整特征之间的关系满足第二预设关系,则将满足第二预设关系的共用调整特征确定为一种预设代码特征。
与现有技术相比,本发明提供的上述技术方案具有如下优点:
在获取需要进行代码格式调整的待处理代码后,基于预设代码特征对待处理代码进行格式调整,得到具有预设格式的目标代码,输出具有预设格式的目标代码,使得不同的待处理代码经过预设代码特征调整后得到的目标代码之间的预设格式相同,进而使得不同待处理代码的格式从多样化向整齐划一过渡,实现不同待处理代码的格式统一,而统一的格式可以让每个程序员能够准确理解代码的思路和用意,显著地提高代码的可读性,并且在准确理解思路和用意的基础上才能够对代码进行准确更改,从而利于代码的修改和维护,另外待处理代码可以基于预设代码特征自动进行格式调整,省去程序员调整或设置格式的环节,节省了人为调整时间,提高了调整效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种代码格式调整方法的流程图;
图2是本发明实施例提供的一种从预设代码特征中提取与待处理代码匹配的特征的流程图;
图3是本发明实施例提供的一段待处理代码的示意图;
图4是本发明实施例提供的一种获取预设代码特征的流程图;
图5是本发明实施例提供的模板代码的示意图;
图6是图3所示待处理代码经过图5所示模板代码中的预设代码特征调整后得到的目标代码的示意图;
图7是本发明实施例提供的一种代码格式调整装置的结构示意图;
图8是本发明实施例提供的另一种代码格式调整装置的结构示意图。
具体实施方式
本发明提供了一种代码格式调整方法及装置,待处理代码可以基于预设代码特征自动进行格式调整,省去程序员调整或设置格式的环节,节省了人为调整时间,提高了调整效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例提供的一种代码格式调整方法的流程图,该方法包括以下步骤:
S101:获取需要进行代码格式调整的待处理代码。其中待处理代码是要对其进行代码格式调整的程序代码,程序员借助终端,如电脑、手机等编写一段程序代码,当终端检测到程序代码编写完成,意味着终端获得待处理代码,而终端检测程序代码编写完成可以是检测到程序员触发编写完成控件,如程序员点击保存控件,则说明完成一次或部分编写。
S102:基于预设代码特征对待处理代码进行格式调整,得到具有预设格式的目标代码。
在本实施例中,预设代码特征是待处理代码进行格式调整时基于的调整标准,以使得目标代码具有预设代码特征指示的预设格式,也就是说预设代码特征能够表征对待处理代码的哪些方面进行限定,如每行、每个字符/字符组、头文件和字符之间的关系进行限定,由此通过预设代码特征进行限定就可以规定出最终输出的目标代码的格式,因此在本实施例中通过预设代码特征能够指示出预设格式。
其中预设代码特征可以是人为规定的特征,通过人为规定的特征表征在编写代码时需要遵循的书写规范,例如:程序员写一个需要其他程序员遵循的代码框架,该代码框架规定了每行、每个字符/字符组、头文件和字符之间的关系的要求,则这些要求可以视为是预设代码特征,通过此方式可以使得目标代码具有程序员想要的统一格式,基于这种方式来说在编写待处理代码时只需要将待处理代码的内容替换掉代码框架中的内容,从而得到具有代码框架指示的预设格式的目标代码。
另外一种可行的方式是:从多个待处理代码中选取一个模板代码,以从模板代码中获取到预设代码特征,然后再基于预设代码特征调整。例如:在模板代码中每行只有一个程序语句,而且每个语句前空两个空格,将这些作为预设代码特征。在获取到待处理代码后结合这些特征调整成具有这些特征指示的预设格式的目标代码,由此使得目标代码的每行只有一个程序语句,而且每个语句前空两个空格。
但是对于某个待处理代码来说,预设代码特征中的所有特征不能够全部适用该待处理代码,此时则需要从预设代码特征中提取与待处理代码匹配的特征,基于与待处理代码匹配的特征,对待处理代码进行格式调整。
其中从预设代码特征中提取与待处理代码匹配的特征是指:从预设代码特征中选出适用于待处理代码的特征,例如:预设代码特征可以包括:对每行代码的要求、每类字符/字符串的要求、头文件的要求、每行代码的层级缩进多少个空格、每行结束采用的标点符号等,对于待处理代码需要进行格式调整时,从预设代码特征中提取适用的特征进行格式调整,如待处理代码中有多行代码,则需要提取出每行要求的特征,待处理代码每行进行缩进也要提取缩进的特征,下面举例进行说明:例如预设代码特征中的一种特征是一个层级缩进4个空格,而待处理代码一个层级缩进2个空格,此时就可以提取一个层级缩进4个空格的特征作为与待处理代码匹配的特征,然后基于预设代码特征中的一个层级缩进4个空格的特征,对待处理代码一个层级缩进2个空格调整为一个层级缩进4个空格。
S103:输出具有预设格式的目标代码,其中不同的待处理代码经过预设代码特征调整后得到的目标代码之间的预设格式相同。也就是说不同的待处理代码的格式虽然有不同,但是经过预设代码特征进行格式调整后,输出的目标代码的格式均是预设格式,使得目标代码之间的格式都是一样的,这样对于将不同的待处理代码的格式转化为统一格式的需求来说,只需要设置预设代码特征即可实现,相比人为调整格式调整既准确且效率又高。
其中预设格式可以是针对一个项目或一个公司来说,使得一个项目或一个公司给出的目标代码都具有统一的预设格式,而不同项目或不同公司可以采用不同的预设格式,这样在保证一个单位(如一个项目或一个公司)的代码具有统一的预设格式之外,又能够保证格式多样化,如不同项目的代码格式可以不同。
在这里需要说明的一点是:虽然待处理代码经过代码格式调整,但是待处理代码仍可以作为源代码保留,以便于程序员将源代码和目标代码进行比对,理解哪方面做了调整,这样程序员可以基于所调整方面对自身的撰写风格进行改正,使得后续开发的程序代码符合预设代码特征指示的预设格式的要求。
通过上述技术方案可知,在获取需要进行代码格式调整的待处理代码后,基于预设代码特征对待处理代码进行格式调整,得到具有预设格式的目标代码,输出具有预设格式的目标代码,使得不同的待处理代码经过预设代码特征调整后得到的目标代码之间的预设格式相同,进而使得不同待处理代码的格式从多样化向整齐划一过渡,实现不同待处理代码的格式统一,而统一的格式可以让每个程序员能够准确理解代码的思路和用意,显著地提高代码的可读性,并且在准确理解思路和用意的基础上才能够对代码进行准确更改,从而利于代码的修改和维护,另外待处理代码可以基于预设代码特征自动进行格式调整,省去程序员调整或设置格式的环节,节省了人为调整时间,提高了调整效率。
如图2所示,为本发明实施例提供的一种从预设代码特征中提取与待处理代码匹配特征的流程图,该方法包括以下步骤:
S201:确定待处理代码中各个独立组成部分各自对应的类型,各个独立组成部分中任一独立组成部分为字符串或字符。也就是说对于待处理代码来说,该待处理代码是由字符串和字符这两种类型的独立组成部分组成,需要说明的是字符就是单个字符,而字符串是多个字符的集合,如图3所示待处理代码,在该待处理代码中“void”、“main”、“int”为字符串,且这三个字符串的类型为保留字类型,该待处理代码中“(”、“)”、“{”、“a”、“=”、“3”、“x”、“5”、“b”、“4”、“;”、“c”、“+”、“}”均为字符,且“(”、“)”、“{”、“;”和“}”的类型为标点符号类型,“=”和“+”的类型为运算符类型,“a”、“x”、“b”和“c”的类型为自变量类型,而“3”、“5”和“4”的类型为数字类型。
S202:基于各个独立组成部分各自对应的类型,从预设代码特征中提取与类型对应的类型调整特征。
其中待处理代码中独立组成部分的类型至少有:保留字、自变量、运算符、标点符号和数字这五种类型,对于这五种类型来说,预设代码特征中有这五种类型各自对应的类型调整特征,因此在获得一个待处理代码之后,需要首先确定该待处理代码含有几种类型的独立组成部分,然后再从预设代码特征中提取出该待处理代码含有的类型的类型调整特征。
类型调整特征用于限定该种类型的独立组成部分在写入时遵循的书写规范,如该种类型的独立组成部分是否需要采用大写字符或小写字符、该种类型的独立组成部分与相邻独立组成部分之间是否有间隔等等,例如对于图3所示待处理代码中,从预设代码特征中提取到的类型调整特征有:左花括号单独占一行、右花括号单独占一行、一对花括号对齐和数字字符和运算字符之间有空格,相邻两个字符串之间有空格,这些都是对具有某种类型的字符或字符串进行调整时使用的规则。结合图5需要提取的类型调整特征为:一个层级缩进4个空格、左花括号单独占一行、右花括号单独占一行、一对花括号对齐、一行只有一个语句。
S203:从预设代码特征中选取共用调整特征,共用调整特征用于对待处理代码中除独立组成部分之外的部分进行格式限定。
也就是说预设代码特征由类型调整特征和共用调整特征组成,而共用调整特征是适用于所有待处理代码的特征,例如每个待处理代码有多行代码,甚至还包括头文件,这些作为多个待处理代码的共有部分,那么共用调整特征则可以是对这些内容的格式进行限定,如共用调整特征是:对每行代码的要求、头文件的要求、具体的每行代码的层级缩进多少个空格、每行结束采用的标点符号等。例如头文件和下一个语句之间空有3行,每行代码缩进4个空格,一段代码中除最后一行以句号结束,其余均以分号结束、每行仅有一个程序语句等。
通过上述技术方案可知,在对待处理代码进行格式调整时需要基于待处理代码的独立组成部分,选取出适用于该待处理代码的独立组成部分的类型调整特征,以基于适用于该待处理代码的独立组成部分的类型调整特征和共用调整特征对待处理代码进行调整,使得代码调整时仅需要基于共用调整特征和自身所需的类型调整特征进行调整即可。
在本实施例中,对待处理代码进行分割得到每个独立组成部分各自对应的类型的过程如下:
在待处理代码的代码编译过程中,将待处理代码的每行字符逐一输入,获得每行字符包括的字符组,其中任意一行字符包括的字符组有:该行字符中第一个字符和第1个空格之间的字符组、该行字符中最后一个字符和第n个空格之间的字符组、第i个空格和第i+1个空格之间的字符组,i的取值为2至n-1,n为待处理代码中包括的空格总数,对任一字符组:基于第一预设匹配规则确定该字符组包括的字符为字符串还是字符,并基于第二预设匹配规则得到类型。
其中,第一预设匹配规则可以是但不限于字符组包括的字符的数量,如果字符组包括的字符的数量等于1,则确定该字符组为字符,如果字符组包括的字符的数量大于1,则确定该字符组为字符串,第二预设匹配规则可以是基于预设保留字、运算符、标点符号和数字进行匹配,对于任意一种编程语言来说,都有规定的保留字(即上述预设保留字)、运算符、标点符号,由此可以基于这些来确定类型,而数字一般在编程语言中用于赋值,因此也可以基于数字确定类型。过程如下:对任一字符组执行以下步骤:
如果该字符组携带的全部内容为数字、运算符、标点符号和预设保留字中的一种,则该字符组的类型为全部内容对应的类型,如果该字符组中字符数量大于1,确定该字符组为一个字符串,如果该字符组中字符数量等于1,确定该字符组为一个字符。
如果该字符组携带的全部内容不包括数字、运算符、标点符号和预设保留字,则该字符组的类型为自变量类型,如果该字符组中字符数量大于1,确定该字符组为一个字符串,如果该字符组中字符数量等于1,确定该字符组为一个字符。
如果该字符组中的字符数大于1且包括至少一个预设字符,则通过预设字符对该字符组进行拆分,将预设字符确定为一个字符且该字符的类型与预设字符的类型相同,预设字符包括:运算符、标点符号和数字中的至少一个。
对通过预设字符拆分得到的各个部分中任一部分:如果该部分中字符数量等于1,则确定该部分为一个字符且字符的类型为自变量,如果该部分中的字符数量大于1,则确定该部分为一个字符串,如果该字符串与预设保留字中的一个相同,则确定该字符串的类型为保留字类型,否则确定该字符串的类型为自变量类型。
需要说明的是,在日常生活中的标点符号中的下划线“_”,在本申请中不归为标点符号的范畴,本申请将下划线“_”归为特殊符号,下划线和字母具有相同的类型,也就是说,一个字符串包括字母和下划线时,不需要对该字符串进行拆分。
如果一个字符组中的字符数量大于1且包括一个预设字符,如该字符组中包括运算符“=”,则通过运算符“=”对该字符组进行拆分,将运算符“=”确定为一个字符且该字符的类型与预设字符的类型相同。
如果一个字符组中的字符数量大于1且包括至少两个预设字符,如该字符组中包括运算符“=”和标点符号“}”,则通过运算符“=”和标点符号“}”对该字符组进行拆分,将运算符“=”和标点符号“}”分别确定为一个字符且该字符的类型与预设字符的类型相同即确定运算符“=”为运算符类型,确定标点符号“}”为标点符号类型。
如果一个字符组中的字符数量大于1且包括至少一个预设字符,且至少一个预设字符中包括至少一个数字,则对该数字的前一个字符进行类型判定,基于数字的前一个字符的类型进行拆分。
基于数字的前一个字符的类型进行拆分的一种可行方式是:如果数字的前一个字符的类型为字母,则不能通过数字对该字符组进行拆分,否则通过数字对该字符组进行拆分。也就是说,数字跟在字母后面,则将字母和数字视为一个整体,数字跟在运算符或标点符号后面,则将该数字和运算符或标点符号拆分。
为了便于理解,在此以C语言为例,对上述分割方式进行举例说明:
首先,保留字为C语言中已经定义过的字符组,不能再将这些字作为变量名使用,如“int”是C语言中已经定义过的字符组,则“int”仅能够作为保留字使用,而不能将其作为自变量使用,如程序员在定义某个名称时不能使用int;自变量为C语言中未定义过的字符组,具体是程序员自行定义字符串或字符。如“pwd_type”,该定义的字符串或字符串在后续使用中的属性由程序员自行定义;运算符为用于执行程序代码运算,运算符为C语言中设置好的,其中运算符包括:单目运算、双目运算和三目运算,单目运算为该运算符只对一个变量进行操作,如“!”(逻辑非);双目运算为该运算符对两个变量进行操作,如“=”(赋值运算符);三目运算为该运算符对三个变量进行操作,如“?:”(条件运算符),同样的标点符号也是C语言中设置好的,对此本实施例不再一一说明。以图3所示待处理代码为例进行说明:
首先对图3所示待处理代码根据每行的第一个字符和第1个空格、每行的最后一个字符和第n个空格、以及每行的相邻两个空格对待处理代码进行分割,得到的各个字符组为“viod”、“main(){”、“int”、“a”、“=”、“35”、“;”、“int”、“b=4;”“int”、“c”和“=a+b;”,其中,任两个空格之间的字符为空,则舍弃该字符组。
字符组“35”为所有字符均为数字,则确定该字符组为数字类型,并且该字符组的字符数量大于1,确定该字符组为一个字符串。
字符组“viod”、“int”、“int”和“int”均与保留字相同,则确定保留字类型,并且该字符组的字符数量大于1,确定该字符组为一个字符串。
字符组“a”、“c”、“=”和“;”的字符数量等于1,“a”、“c”确定为字母,“=”确定为运算符,“;”确定为标点符号,并确定“a”、“c”为字母类型,“=”为运算符类型,“;”确定为标点符号类型,并且该字符组的字符数量等于1,确定该字符组为一个字符。
字符组“b=4;”、“main(){”和“=a+b;”字符数量大于1且包括预设字符,则对这些字符组进行拆分,以字符组“main(){”为例,拆分得到“main”、“()”、“{”,再将得到的字符组进行确定类型,确定类型与上述代码进行确定类型的执行过程和原理形同,在此不再赘述。
而本实施例中获取预设代码特征的流程如图4所示,可以包括以下步骤:
S401:获得用于得到预设代码特征的模板代码。其中模板代码是多个待处理代码中的一个,其可以由程序员指定或者随机从多个待处理代码中选取一个作为模板代码。
S402:确定模板代码中每种独立组成部分各自对应的所有类型调整特征。
S403:对每种独立组成部分中任一种独立组成部分对应的所有类型调整特征:如果该种独立组成部分对应的一种类型调整特征与该种独立组成部分对应的所有类型调整特征之间的关系满足第一预设关系,则将满足第一预设关系的类型调整特征确定为一种预设代码特征。
可以理解的是:模板代码中含有不同格式的独立组成部分,但是这些不同格式的独立组成部分中存在对应一种类型的独立组成部分,那么对于同一种类型的独立组成部分,需要对该种类型的独立组成部分的格式进行统一,那么为了获得该种类型的独立组成部分的统一的类型调整特征,需要首先获取该种类型的独立组成部分的所有类型调整特征(类型调整特征一种视为一种格式),然后再从该种类型的所有类型调整特征中选取一种,所选取的类型调整特征则为预设代码特征中该种类型的类型调整特征。在本实施例中,选取类型调整特征的方式如下:
对一个类型的所有类型调整特征来说,计算该种类型的每个类型调整特征在该类型的所有类型调整特征的应用比例,如果应用比例超过预设阈值(如60%但不限于60%),则将应用比例超过预设阈值的类型调整特征确定为一种预设代码特征;如果一个类型中应用比例超过预设阈值的类型调整特征有多个,则需要从该类型的应用比例超过预设阈值的类型调整中选取一个作为一种预设代码特征,选取方式可以是但不限于是:随机选取,或者按照应用比例的大小选取。
此外,除基于上述作为第一预设关系的预设阈值之外,本实施例还可以采用其他方式,如对一个类型的所有类型调整特征来说,随机选取一个作为一种预设代码特征,但是这种方式相对于上述基于第一预设关系的方式来说,其选取出的类型调整特征有可能不符合多数人的书写习惯,导致通过其调整后输出的目标代码不便于理解,因此本实施例优选采用基于第一预设关系方式选取预设代码特征。
S404:确定模板代码中适用于每行代码共用的各类共用调整特征。
S405:对各类共用调整特征中任一类共用调整特征:如果该类中的一个共用调整特征与该类所有共用调整特征之间的关系满足第二预设关系,则将满足第二预设关系的共用调整特征确定为一种预设代码特征。
对于第二预设关系可以等同于第一预设关系,也可以不同于第一预设关系,如作为第一预设关系的预设阈值和作为第二预设关系的预设阈值的取值不同,对于步骤S405与步骤S403相类似,这里不在进行阐述。
根据上述技术方案可知,从模板代码提取出适用于每个待处理代码的预设代码特征,从而为待处理代码的格式调整提供了调整标准,这样按照预设代码特征进行调整后的目标代码之间能够具有统一格式。
下面以图5所示模板代码为例,结合图4阐述从图5所示模板代码中提取预设代码特征的过程,其过程如下:
对模板代码进行逐个字符读入,第一个字符是“#”,认定为宏定义,但是全部代码内容还不确定,继续向后读入“i”“n”“c”“1”“u”“d”“e”,下一个读到的是“空格”,它不再是字母、数字、下划线,这样被分割的第一字符串就是“#include”,同时认定这一行头文件包含行,对于后面几行可能为特征所在行,向后读取为“空行”,继续向后读取为“非空行”,这样就可以判定宏定义后的特征为“一个空白行”,按照这个方式依次往后提取特征,提取到的特征有:
头文件包含语句后跟一个空行,且该特征的应用比例为100%;
一个层级缩进4个空格有5处,缩进2个空格有2处,且缩进四4空格的特征的应用比例为71%;
模板代码中共有8个双目运算符,双目运算符前后有空格的有7处,则该特征的应用比例为87%;
左花括号单独占一行,特征的应用比例为100%;
右花括号单独占一行,特征的应用比例为100%;
一对花括号对齐,特征的应用比例为100%;
一行只有一个语句,特征的应用比例为100%;
则基于应用比例超过预设阈值(如60%但不限于60%)可知,从图5所示的模板代码中提取到的预设代码特征有:头文件包含语句后跟一个空行、一个层级缩进4个空格、双目运算符前后有空格、左花括号单独占一行、右花括号单独占一行、一对花括号对齐和一行只有一个语句。
将图5中提取的预设代码特征应用到图3所示的待处理代码后,图3所示待处理代码的代码调整过程如下:
将待处理代码逐个字符读入,第一个字符是“v”,根据C语言规则以字母或下划线开头的符号是标识符,但是全部内容还不能确定,继续向后读入“o”“i”“d”,下一个读取到的是“空格”,它不再是字母、数字、下划线,这样被分割的第一个字符串就是“void”,根据这个方式对这段代码进行分割后分别为“void”、“main”、“(”、“)”、“{”、“int”、“a”、“=”、“3”、“;”、“int”、“x”、“=”、“5”、“int”、“b”、“=”、“4”、“:”、“int”、“c”、“=”、“a”、“+”、“b”、“;”、“}”,根据分割后的字符和字符串可以从预设代码特征中提取到的类型调整特征有:双目运算符前后有空格、左右花括号各占一行和一对花括号对齐,共用调整特征有:头文件包含语句后跟一个空行,一个层级缩进4个空格和一行只有一个语句。应用这些对图3所示待处理代码进行调整后得到的目标代码如图6所示,使得目标代码的预设格式与调整时使用的特征要求的格式相同。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
与上述方法实施例相对应,本发明实施例还提供一种代码格式调整装置,其结构如图7所示,可以包括:获取单元11、调整单元12和输出单元13。
获取模块11,用于获取需要进行代码格式调整的待处理代码,对于获取的方式例如:获取模块11获取程序员借助终端,如电脑、手机等编写一段程序代码,当终端检测到程序代码编写完成,意味着终端获得待处理代码,而终端检测程序代码编写完成可以是检测到程序员触发编写完成控件,如程序员点击保存控件,则说明完成一次或部分编写。
调整模块12,用于基于预设代码特征对待处理代码进行格式调整,得到具有预设格式的目标代码,其中预设代码特征是待处理代码进行格式调整时基于的调整标准,以使得目标代码具有预设代码特征指示的预设格式,由此通过预设代码特征进行限定就可以规定出最终输出的目标代码的格式,因此在本实施例中通过预设代码特征能够指示出预设格式。
一种调整方式是:通过人为规定预设代码特征,例如:程序员写一个需要其他程序员遵循的代码框架,该代码框架规定了每行、每个字符/字符组、头文件和字符之间的关系的要求,则这些要求可以视为是预设代码特征,通过此方式可以使得目标代码具有程序员想要的统一格式,基于这种方式来说在编写待处理代码时只需要将待处理代码的内容替换掉代码框架中的内容,从而得到具有代码框架指示的预设格式的目标代码。
另外一种可行的方式是:从多个待处理代码中选取一个模板代码,以从模板代码中获取到预设代码特征,然后再基于预设代码特征调整。
但是对于某个待处理代码来说,预设代码特征中的所有特征不能够全部适用该待处理代码,此时则需要从预设代码特征中提取与待处理代码匹配的特征,基于与待处理代码匹配的特征,对待处理代码进行格式调整,对于预设代码特征的说明请参阅上述方法实施例,对此本实施例不再阐述。
输出模块13,用于输出具有预设格式的目标代码,其中不同的待处理代码经过预设代码特征调整后得到的目标代码之间的预设格式相同。
经过预设代码特征进行格式调整后,输出的目标代码的格式均是预设格式,使得目标代码之间的格式都是一样的,这样对于将不同的待处理代码的格式转化为统一格式的需求来说,只需要设置预设代码特征即可实现,相比人为调整格式调整既准确且效率又高。
通过上述技术方案可知,在获取需要进行代码格式调整的待处理代码后,基于预设代码特征对待处理代码进行格式调整,得到具有预设格式的目标代码,输出具有预设格式的目标代码,使得不同的待处理代码经过预设代码特征调整后得到的目标代码之间的预设格式相同,进而使得不同待处理代码的格式从多样化向整齐划一过渡,实现不同待处理代码的格式统一,而统一的格式可以让每个程序员能够准确理解代码的思路和用意,显著地提高代码的可读性,并且在准确理解思路和用意的基础上才能够对代码进行准确更改,从而利于代码的修改和维护,另外待处理代码可以基于预设代码特征自动进行格式调整,省去程序员调整或设置格式的环节,节省了人为调整时间,提高了调整效率。
在本实施例中调整模块12的一种可选结构是:调整模块12包括提取单元和调整单元。
提取单元,用于从预设代码特征中提取与所述待处理代码匹配的特征。
调整单元,用于基于与待处理代码匹配的特征,对待处理代码进行格式调整,得到具有预设格式的目标代码。
具体的提取单元可以包括确定子单元、类型调整特征提取子单元和共用调整特征选取子单元。
确定子单元,用于确定待处理代码中各个独立组成部分各自对应的类型,各个独立组成部分中任一独立组成部分为字符串或字符。也就是说对于待处理代码来说,该待处理代码是由字符串和字符这两种类型的独立组成部分组成,需要说明的是字符就是单个字符,而字符串是多个字符的集合,具体的对字符和字符串的说明请参阅相关方法实施例,这里不再进行阐述。
类型调整特征提取子单元,用于基于各个独立组成部分各自对应的类型,从预设代码特征中提取与所述类型对应的类型调整特征,具体的类型调整特征用于限定该种类型的独立组成部分在写入时遵循的书写规范,如该种类型的独立组成部分是否需要采用大写字符或小写字符、该种类型的独立组成部分与相邻独立组成部分之间是否有间隔等等,对于类型调整特征的说明请参考方法实施例中的相关说明。
共用调整特征选取子单元,用于从所述预设代码特征中选取共用调整特征,所述共用调整特征用于对所述待处理代码中除所述独立组成部分之外的部分进行格式限定,也就是说预设代码特征由类型调整特征和共用调整特征组成,而共用调整特征是适用于所有待处理代码的特征,例如每个待处理代码有多行代码,甚至还包括头文件,这些作为多个待处理代码的共有部分,那么共用调整特征则可以是对这些内容的格式进行限定,对于共用调整特征的举例说明请参阅相关方法实施例这里不再进行阐述。
通过上述技术方案可知,在对待处理代码进行格式调整时需要基于待处理代码的独立组成部分,选取出适用于该待处理代码的独立组成部分的类型调整特征,以基于适用于该待处理代码的独立组成部分的类型调整特征和共用调整特征对待处理代码进行调整,使得代码调整时仅需要基于共用调整特征和自身所需的类型调整特征进行调整即可。
如图8所示,其示出了本发明实施例提供的另一种代码格式调整装置,在图7基础上还可以包括:模板代码获得模块14、类型调整特征确定模块15和共用调整特征确定模块16。
模板代码获得模块14,用于获得用于得到预设代码特征的模板代码。其中模板代码是多个待处理代码中的一个,其可以由程序员指定或者随机从多个待处理代码中选取一个作为模板代码。
类型调整特征确定模块15,用于确定所述模板代码中每种独立组成部分各自对应的所有类型调整特征,具体的如何确定模板代码中的所有类型调整特征请参阅相关方法实施例,这里不再进行阐述。
共用调整特征确定模块16,用于确定所述模板代码中适用于每行代码共用的各类共用调整特征,具体的如何确定模板代码中的所有共用调整特征请参阅相关方法实施例,这里不再进行阐述。
根据上述技术方案可知,从模板代码提取出适用于每个待处理代码的预设代码特征,从而为待处理代码的格式调整提供了调整标准,这样按照预设代码特征进行调整后的目标代码之间能够具有统一格式。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种代码格式调整方法,其特征在于,所述方法包括:
获取需要进行代码格式调整的待处理代码;
基于预设代码特征对所述待处理代码进行格式调整,得到具有预设格式的目标代码;
输出所述具有预设格式的目标代码,其中不同的待处理代码经过所述预设代码特征调整后得到的目标代码之间的预设格式相同;
所述预设代码特征的获得过程包括:
获得用于得到所述预设代码特征的模板代码;
确定所述模板代码中每种独立组成部分各自对应的所有类型调整特征;
对每种独立组成部分中任一种独立组成部分对应的所有类型调整特征:如果该种独立组成部分对应的一种类型调整特征与该种独立组成部分对应的所有类型调整特征之间的关系满足第一预设关系,则将满足第一预设关系的类型调整特征确定为一种预设代码特征;
确定所述模板代码中适用于每行代码共用的各类共用调整特征;
对各类共用调整特征中任一类共用调整特征:如果该类中的一个共用调整特征与该类所有共用调整特征之间的关系满足第二预设关系,则将满足第二预设关系的共用调整特征确定为一种预设代码特征;
所述如果该种独立组成部分对应的一种类型调整特征与该种独立组成部分对应的所有类型调整特征之间的关系满足第一预设关系,则将满足第一预设关系的类型调整特征确定为一种预设代码特征,包括:
计算该种独立组成部分对应的一种类型调整特征在该种独立组成部分对应的所有类型调整特征的应用比例;
如果应用比例超过第一预设阈值,则将应用比例超过第一预设阈值的类型调整特征确定为一种预设代码特征;
如果所述应用比例超过第一预设阈值的类型调整特征有多个,则从所述应用比例超过第一预设阈值的类型调整特征中选取一个作为一种预设代码特征;
所述如果该类中的一个共用调整特征与该类所有共用调整特征之间的关系满足第二预设关系,则将满足第二预设关系的共用调整特征确定为一种预设代码特征,包括:
计算该类中的一个共用调整特征在该类所有共用调整特征的应用比例;
如果应用比例超过第二预设阈值,则将应用比例超过第二预设阈值的共用调整特征确定为一种预设代码特征;
如果所述应用比例超过第二预设阈值的共用调整特征有多个,则从所述应用比例超过第二预设阈值的共用调整特征中选取一个作为一种预设代码特征。
2.根据权利要求1所述的方法,其特征在于,所述基于预设代码特征对所述待处理代码进行格式调整,得到具有预设格式的目标代码包括:
从所述预设代码特征中提取与所述待处理代码匹配的特征;
基于与所述待处理代码匹配的特征,对所述待处理代码进行格式调整,得到具有预设格式的目标代码。
3.根据权利要求2所述的方法,其特征在于,所述从所述预设代码特征中提取与所述待处理代码匹配的特征包括:
确定所述待处理代码中各个独立组成部分各自对应的类型,所述各个独立组成部分中任一独立组成部分为字符串或字符;
基于所述各个独立组成部分各自对应的类型,从所述预设代码特征中提取与所述类型对应的类型调整特征;
从所述预设代码特征中选取共用调整特征,所述共用调整特征用于对所述待处理代码中除所述独立组成部分之外的部分进行格式限定。
4.根据权利要求3所述的方法,其特征在于,所述确定所述待处理代码中各个独立组成部分各自对应的类型包括:
获得所述待处理代码中每行字符包括的字符组,其中任意一行字符包括的字符组有:该行字符中第一个字符和第1个空格之间的字符组、该行字符中最后一个字符和第n个空格之间的字符组、第i个空格和第i+1个空格之间的字符组,其中i的取值为2到n-1,n为所述待处理代码中包括的空格总数;
对任一字符组执行以下步骤:
如果该字符组携带的全部内容为数字、运算符、标点符号和预设保留字中的一种,则该字符组的类型为全部内容对应的类型,如果该字符组中字符数量大于1,确定该字符组为一个字符串,如果该字符组中字符数量等于1,确定该字符组为一个字符;
如果该字符组携带的全部内容不包括数字、运算符、标点符号和预设保留字,则该字符组的类型为自变量类型,如果该字符组中字符数量大于1,确定该字符组为一个字符串,如果该字符组中字符数量等于1,确定该字符组为一个字符;
如果该字符组中字符数量大于1且包括至少一个预设字符,则通过所述预设字符对该字符组进行拆分,将预设字符确定为一个字符且该字符的类型与预设字符的类型相同,所述预设字符包括运算符、标点符号和数字中的至少一个;
对通过所述预设字符拆分得到的各部分中任一部分:如果该部分中字符数量等于1,则确定该部分为一个字符且字符的类型为自变量类型,如果该部分中字符数量大于1,则确定该部分为一个字符串,如果该字符串与预设保留字中的一个相同,则确定该字符串的类型为保留字类型,否则确定该字符串的类型为自变量类型。
5.一种代码格式调整装置,其特征在于,所述装置包括:
获取模块,用于获取需要进行代码格式调整的待处理代码;
调整模块,用于基于预设代码特征对所述待处理代码进行格式调整,得到具有预设格式的目标代码;
输出模块,用于输出所述具有预设格式的目标代码,其中不同的待处理代码经过所述预设代码特征调整后得到的目标代码之间的预设格式相同;
所述装置还包括:
模板代码获得模块,用于获得用于得到所述预设代码特征的模板代码;
类型调整特征确定模块,用于确定所述模板代码中每种独立组成部分各自对应的所有类型调整特征,对每种独立组成部分中任一种独立组成部分对应的所有类型调整特征:如果该种独立组成部分对应的一种类型调整特征与该种独立组成部分对应的所有类型调整特征之间的关系满足第一预设关系,则将满足第一预设关系的类型调整特征确定为一种预设代码特征;
共用调整特征确定模块,用于确定所述模板代码中适用于每行代码共用的各类共用调整特征,对各类共用调整特征中任一类共用调整特征:如果该类中的一个共用调整特征与该类所有共用调整特征之间的关系满足第二预设关系,则将满足第二预设关系的共用调整特征确定为一种预设代码特征;
所述如果该种独立组成部分对应的一种类型调整特征与该种独立组成部分对应的所有类型调整特征之间的关系满足第一预设关系,则将满足第一预设关系的类型调整特征确定为一种预设代码特征,包括:
计算该种独立组成部分对应的一种类型调整特征在该种独立组成部分对应的所有类型调整特征的应用比例;
如果应用比例超过第一预设阈值,则将应用比例超过第一预设阈值的类型调整特征确定为一种预设代码特征;
如果所述应用比例超过第一预设阈值的类型调整特征有多个,则从所述应用比例超过第一预设阈值的类型调整特征中选取一个作为一种预设代码特征;
所述如果该类中的一个共用调整特征与该类所有共用调整特征之间的关系满足第二预设关系,则将满足第二预设关系的共用调整特征确定为一种预设代码特征,包括:
计算该类中的一个共用调整特征在该类所有共用调整特征的应用比例;
如果应用比例超过第二预设阈值,则将应用比例超过第二预设阈值的共用调整特征确定为一种预设代码特征;
如果所述应用比例超过第二预设阈值的共用调整特征有多个,则从所述应用比例超过第二预设阈值的共用调整特征中选取一个作为一种预设代码特征。
6.根据权利要求5所述的装置,其特征在于,所述调整模块包括:
提取单元,用于从所述预设代码特征中提取与所述待处理代码匹配的特征;
调整单元,用于基于与所述待处理代码匹配的特征,对所述待处理代码进行格式调整,得到具有预设格式的目标代码。
7.根据权利要求6所述的装置,其特征在于,所述提取单元包括:
确定子单元,用于确定所述待处理代码中各个独立组成部分各自对应的类型,所述各个独立组成部分中任一独立组成部分为字符串或字符;
类型调整特征提取子单元,用于基于所述各个独立组成部分各自对应的类型,从所述预设代码特征中提取与所述类型对应的类型调整特征;
共用调整特征选取子单元,用于从所述预设代码特征中选取共用调整特征,所述共用调整特征用于对所述待处理代码中除所述独立组成部分之外的部分进行格式限定。
8.根据权利要求7所述的装置,其特征在于,所述确定子单元,具体用于获得所述待处理代码中每行字符包括的字符组,其中任意一行字符包括的字符组有:该行字符中第一个字符和第1个空格之间的字符组、该行字符中最后一个字符和第n个空格之间的字符组、第i个空格和第i+1个空格之间的字符组,其中i的取值为2到n-1,n为所述待处理代码中包括的空格总数;
对任一字符组执行以下步骤:
如果该字符组携带的全部内容为数字、运算符、标点符号和预设保留字中的一种,则该字符组的类型为全部内容对应的类型,如果该字符组中字符数量大于1,确定该字符组为一个字符串,如果该字符组中字符数量等于1,确定该字符组为一个字符;
如果该字符组携带的全部内容不包括数字、运算符、标点符号和预设保留字,则该字符组的类型为自变量类型,如果该字符组中字符数量大于1,确定该字符组为一个字符串,如果该字符组中字符数量等于1,确定该字符组为一个字符;
如果该字符组中字符数量大于1且包括至少一个预设字符,则通过所述预设字符对该字符组进行拆分,将预设字符确定为一个字符且该字符的类型与预设字符的类型相同,所述预设字符包括运算符、标点符号和数字中的至少一个;
对通过所述预设字符拆分得到的各部分中任一部分:如果该部分中字符数量等于1,则确定该部分为一个字符且字符的类型为自变量类型,如果该部分中字符数量大于1,则确定该部分为一个字符串,如果该字符串与预设保留字中的一个相同,则确定该字符串的类型为保留字类型,否则确定该字符串的类型为自变量类型。
CN201811618411.1A 2018-12-27 2018-12-27 一种代码格式调整方法及装置 Active CN109683881B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811618411.1A CN109683881B (zh) 2018-12-27 2018-12-27 一种代码格式调整方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811618411.1A CN109683881B (zh) 2018-12-27 2018-12-27 一种代码格式调整方法及装置

Publications (2)

Publication Number Publication Date
CN109683881A CN109683881A (zh) 2019-04-26
CN109683881B true CN109683881B (zh) 2022-04-05

Family

ID=66190111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811618411.1A Active CN109683881B (zh) 2018-12-27 2018-12-27 一种代码格式调整方法及装置

Country Status (1)

Country Link
CN (1) CN109683881B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486566A (zh) * 2020-10-23 2021-03-12 百果园技术(新加坡)有限公司 代码文件处理方法、装置、设备及存储介质
CN112631606B (zh) * 2020-12-31 2024-07-09 中国农业银行股份有限公司 一种脚本格式化方法及装置
CN113703736A (zh) * 2021-08-31 2021-11-26 四川启睿克科技有限公司 一种web项目代码优化方法
CN113791768B (zh) * 2021-09-22 2023-04-14 海通证券股份有限公司 代码生成方法及装置、存储介质、终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226658B1 (en) * 1998-06-19 2001-05-01 Hewlett-Packard Company Layout code tuning in universally readable document files
CN104050085A (zh) * 2014-06-25 2014-09-17 北京思特奇信息技术股份有限公司 一种代码规范强制检查方法及***
CN107357733A (zh) * 2017-07-17 2017-11-17 万帮充电设备有限公司 提高代码质量的方法及装置
CN107885715A (zh) * 2017-11-23 2018-04-06 掌阅科技股份有限公司 代码信息的排版方法、电子设备及计算机存储介质
CN109032949A (zh) * 2018-08-02 2018-12-18 郑州悉知信息科技股份有限公司 一种前端代码质量检测方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226658B1 (en) * 1998-06-19 2001-05-01 Hewlett-Packard Company Layout code tuning in universally readable document files
CN104050085A (zh) * 2014-06-25 2014-09-17 北京思特奇信息技术股份有限公司 一种代码规范强制检查方法及***
CN107357733A (zh) * 2017-07-17 2017-11-17 万帮充电设备有限公司 提高代码质量的方法及装置
CN107885715A (zh) * 2017-11-23 2018-04-06 掌阅科技股份有限公司 代码信息的排版方法、电子设备及计算机存储介质
CN109032949A (zh) * 2018-08-02 2018-12-18 郑州悉知信息科技股份有限公司 一种前端代码质量检测方法及装置

Also Published As

Publication number Publication date
CN109683881A (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
CN109683881B (zh) 一种代码格式调整方法及装置
CN109344230B (zh) 代码库文件生成、代码搜索、联结、优化以及移植方法
CN111259873B (zh) 一种表格数据提取方法及装置
CN108829884B (zh) 数据映射方法及装置
CN104199871A (zh) 一种用于智慧教学的高速化试题导入方法
CN110543303A (zh) 一种可视化业务平台
CN109508448A (zh) 基于长篇文章生成短资讯方法、介质、装置和计算设备
US11610051B2 (en) Dynamically generating documents using natural language processing and dynamic user interface
CN115358200A (zh) 一种基于SysML元模型的模板化文档自动生成方法
CN112395425A (zh) 一种数据处理方法、装置、计算机设备以及可读存储介质
Yu et al. Design and implementation of curriculum system based on knowledge graph
CN104090865B (zh) 文本相似度计算方法及装置
CN109710304B (zh) 一种格式调整方法及装置
CN103365640A (zh) 层叠样式表样式转换方法及装置
CN110362691B (zh) 一种句法树库构建***
CN112506488A (zh) 一种基于sql创建语句生成编程语言类的方法
CN106951540B (zh) 文件目录的生成方法、装置、服务器及计算机存储介质
CN104657340A (zh) 可扩展基于脚本的Word报告生成***及方法
Krishna et al. SHR++: An interface for morpho-syntactic annotation of Sanskrit corpora
CN114219438A (zh) 基于rpa及ai的公文文件分发方法、装置、设备及介质
Andrews Digital Techniques for Critical Edition
CN106326209A (zh) 藏文字检错方法、***及藏文字串检错方法、***
CN116306573B (zh) 工程做法的智能解析方法、装置、设备和可读存储介质
CN116484802B (zh) 字符串颜色标记方法、装置、计算机设备及存储介质
JPH0743728B2 (ja) 要約文生成方式

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant