2015年9月25日星期五

去除代码中的comment

// Given Program
//   /* Test program */
//   int main()
//   {
//      // variable declaration
//      int a, b, c;
//      /* This is a test
//          multiline
//          comment for
//          testing */
//  // b = a + c;
//      a = b + c;
//   }
//
// Modified Program
//   int main()
//   {
//             int a, b, c;
//
//          a = b + c;
//   }

public String removeComment(String str) {
StringBuilder sb = new StringBuilder();
int n = str.length();
boolean singleComment = false;
boolean multiComment = false;
for (int i = 0; i < str.length(); i++) {
if (i + 1 < n && str.charAt(i) == '/' && str.charAt(i + 1) == '*') {
multiComment = true;
i++;
} else if (i + 1 < n && str.charAt(i) == '*' && str.charAt(i + 1) == '/') {
multiComment = false;
i++;
} else if (i + 1 < n && str.charAt(i) == '/' && str.charAt(i + 1) == '/') {
singleComment = true;
i++;
} else if (singleComment && str.charAt(i) == '\n') {
singleComment = false;
i++;
} else if (singleComment || multiComment) {
i++;
continue;
} else {
sb.append(str.charAt(i));
}
}
return sb.toString();
}

没有评论:

发表评论