java程序清理C代码

时间:2015-03-17 12:23:06

标签: java regex string refactoring code-cleanup

我想编写一个java程序来获取,一个工作的C代码作为输入,并清理它。 (我们知道在输入中,每行不会超过一个命令(语句)。)

#include <stdio.h>
int main(){
int i,n;
    float arr[100 ];
printf("Enter numbers:");
             scanf("%d",&n);
printf("\n");
for(i=0;i<n;++i)
{
printf("%d",i+1);
scanf("%f",&arr[i]);
}
for(i=1;i<n;++i){
if(arr[0]<arr[i])
arr[0]=arr[i];
}
printf("largest is %.2f",arr[0]);



return 0;
}

这就是我清理的意思。标签就位,没有冗余空间等,IDE通常会做这件事。但是我想写一个代码来自己做。

#include <stdio.h>
int main(){
  int i, n;
  float arr[100];
  printf("Enter numbers:");
  scanf("%d", &n);
  printf("\n");
  for(i = 0; i < n; ++i){
    printf("%d", i + 1);
    scanf("%f", &arr[i]);
  }
for(i = 1; i < n; ++i){
  if(arr[0] < arr[i])
     arr[0] = arr[i];
  }
  printf("largest is %.2f", arr[0]);
  return 0;
}

我不知道从哪里开始。但我认为我应该使用split和regex的东西,首先将输入分成几部分,然后以某种方式解析它。例如对于凹痕(每个“{”)有多少个标签我们应该计算“{”在彼此内部的数量,以及类似的东西。 1)每个块一个凹痕。 2)else在if的“}”之后直接出现,或者如果没有“}”则出现在下一行。 3)“;”之前的字符应该直接在它后面(没有分隔空间),也在一个for中,在“;”之后有一个空格 - &gt; for(i = 0; i ++){.. 4)没有多余的空间。 5)没有空行

0 个答案:

没有答案