実行可能な行のコード(ELOC)、空白行の行(BLOC)、およびコメント(CLOC)をJavaおよびC++コードのみに対してスキャンおよび検索するJavaプログラムを作成しました。以下は私のコードです:実行可能なコード行を見つけるためのJavaアルゴリズム
if(extension.contains("java") || extension.contains("c++"))
{
Scanner input = new Scanner(fileObject);
while(input.hasNext())
{
String s = input.nextLine();
if(s.length()==0)
{
bloc++;
}
else if(s.contains("/*") || s.startsWith("/*"))
{
cloc++;
while(!s.contains("*/"))
{
cloc++;
s = input.nextLine();
}
}
else if(s.contains("//"))
{
cloc++;
}
else
{
eloc++;
}
}//while
System.out.println("ELOC: "+(eloc));
System.out.println("Blank Lines: "+bloc);
System.out.println("Comment Lines: "+cloc);
}
私は異なるJavaとC++のソースコードを実行しましたが、必ずしも正しい答えを出すとは限りません。私はそれをより良くするために何ができますか?私が使用できるJavaコードがオンラインにありますか?
この質問では、実行可能なコード行を数えています。次のような行が表示される場合:
int x=0;//some comment
この場合、上記の行は実行可能な行の1つとして数えます。
String extension=getExtension(fileObject.getName());
if(extension.contains("java") || extension.contains("c++"))
{
Scanner input = new Scanner(fileObject);
String s;
while(input.hasNext())
{
s = input.nextLine().trim();
eloc++;
if(s.equals(""))
{
bloc++;
}
if(s.startsWith("//"))
{
cloc++;
}
if(s.contains("/*") && !s.contains("*\\"))
{
cloc++;
while(!s.contains("*/"))
{
cloc++;
eloc++;
s = input.nextLine();
}
}
else if(s.contains("/*") && s.contains("*\\"))
{
cloc++;
}
}
System.out.println("Total number of lines: "+eloc);
System.out.println("ELOC: "+(eloc-(cloc+bloc)));
System.out.println("Blank Lines: "+bloc);
System.out.println("Comment Lines: "+cloc);
}
どれコメント/アドバイスはappreciated..Thanks次のようになります。以下は、私の更新されたコードです!
http://stackoverflow.com/questions/2184999/sloc-for-java-projects –
あなたは「正しい答えを常に出すとは限らない」と言った。それが間違っているとき、どうしたのですか?あなたは例を挙げることができますか? –
私は結果をlocmetrics.comと比較していますが、同じ結果は得られません。 – sap