微软实习面试-删除一个JAVA文件的全部注释

描述:删除一个合法的JAVA文件的全部注释,注释以"//"或者"/* */"表示。

注意: 单引号或者双引号内的文字可能包括"//"或者"/* */",但不是注释的部分。

解法:读入文件后,一个字符一个字符的处理。

 1 public void deleteAllComment(InputStream is) throws IOException {
 2         int i = is.read();
 3         while(i != -1) {
 4             char c = (char)i;
 5             if(c == ‘/‘) {
 6                 char j = (char)is.read();
 7                 if(j == ‘/‘) {
 8                     deleteThisLine(is);
 9                 } else if(j == ‘*‘) {
10                     deleteUntilEnd(is);
11                 }
12             } else if(c == ‘\‘‘ || c == ‘"‘) {
13                 echoString(is, c);
14             } else {
15                 System.out.print(c);
16             }
17             i = is.read();
18         }
19     }
20
21     //删除以"//"开头的注释
22     private void deleteThisLine(InputStream is) throws IOException {
23         char i = (char)is.read();
24         char j = (char)is.read();
25         while(true) {
26             if(i == ‘\r‘ && j==‘\n‘) {
27                 break;
28             } else {
29                 i = j;
30                 j = (char)is.read();
31             }
32         }
33     }
34
35     //删除以"/* */"表示的注释
36     private void deleteUntilEnd(InputStream is) throws IOException {
37         char i = (char)is.read();
38         char j = (char)is.read();
39         while(true) {
40             if(i == ‘*‘ && j==‘/‘) {
41                 break;
42             } else {
43                 i = j;
44                 j = (char)is.read();
45             }
46         }
47     }
48
49     //原样输出单引号或者双引号中的内容
50     private void echoString(InputStream is, int start) throws IOException {
51         char end = (char)is.read();
52         while(end != start) {
53             System.out.print(end);
54             end = (char)is.read();
55         }
56     }
时间: 2024-10-12 19:50:36

微软实习面试-删除一个JAVA文件的全部注释的相关文章

一个java文件编译之后会产生多个class文件

如图所示:如果编译后一个java文件中类有内部类的话,就会编译产生多个类

Java基础-一个java文件多个类的问题

一个.java文件当然可以包括多个类.但这些类有一个特殊的类与其它的不同,,这个类是带public 属性的类.一个.java类文件中仅有一个public属性的类.而且这个类与文件名相同.

一个.java文件中是否可以有多个外部类

前段时间,有个同事问到我这个问题:一个.java文件中是否可以有多个外部类? 答案:可以有多个外部类,但最多只能有一个被public修饰的class. 且若这个.java文件中有一个public类型的class,则这个class名需与.java文件名一致. 举例: 文件A.java里有如下外部类 public class A1会报错,报错信息是如下:提示public 类型的A1必须定义在它自己的文件中 因此一个java文件中是不能同时有两个public 类型的class的.

JAVA基础学习--Eclipse中导入一个java文件

在编写java工程时,可能会用到别的已经成熟的java类文件,那么如何才能将目标类文件导入到工程中呢, 以下Operation.java为例. 现一个java文件源码. 1.打开eclipse,“File”->"New"->"Java Project",在Project Name中输入工程名,如:com.linwu.其他参数使用默认数据.点击Finish 2.在工程com.linwu下的Src,点击右键,选择New->Package,在name这一

Java-Runoob-高级教程-实例-环境设置实例:1.Java 实例 – 如何编译一个Java 文件?

ylbtech-Java-Runoob-高级教程-实例-环境设置实例:1.Java 实例 – 如何编译一个Java 文件? 1.返回顶部 1. Java 实例 - 如何编译 Java 文件  Java 实例 本文我们演示如何编译 HelloWorld.java 文件,其中 Java 代码如下: HelloWorld.java 文件 public class HelloWorld { public static void main(String []args) { System.out.print

eclipse中xml、jsp等,非Java文件中的注释快捷键是什么?

非Java文件,例如jsp文件.xml文件中的要想快速注释一段话的,eclipse提供了注释的快捷键: 先选定要注释的内容 然后:Ctrl+shift+c 取消注释也是先选定再快捷键 原文地址:https://www.cnblogs.com/niusdtz/p/9459543.html

一个java文件中可包含多个main方法

java中的main方法是java应用程序的入口,java程序在运行时,首先调用执行main方法.但并不是说java中只能有一个main方法,不同类中都可以包含main方法.当JVM进行编译时,会提示选择其中一个main方法作为编译的入口.

判断一个java文件和邮箱格式是否合法

import java.util.Scanner; public class StringTest { public static void main(String[] args) { int back = 1; Scanner input  =new Scanner(System.in); do{                                                                                  //设置循环方法,直至输入正确为止

一个“.java”文件中是否可以包含多个类(不是内部类)?有什么限制?

可以,若这个类的修饰符是public则,其类名须与文件名相同.