所以我正在使用Google Code Jam,对于他们的新格式,我必须将我的代码作为单个文本文件上传。
我喜欢把我的代码写成正确构造的类和多个文件,即使在时间压力下(我发现我在清晰度和自己的调试速度上节省了更多的时间,而不是浪费时间。)我想重复使用共同代码。
完成代码后,我必须将多个文件中的一系列类转换为单个文件。
目前我只是手动将所有文件的文本复制并粘贴到一个文件中,然后手动按摩使用和命名空间以使其全部工作。
有更好的选择吗? 理想情况下,JustTIt对我来说是一个工具吗? 或者,如果有一些我可以实现的可预测算法,不需要任何手动调整?
答案 0 :(得分:3)
答案 1 :(得分:0)
这可能不是最佳方式,但这是一种可以满足您需求的算法:
using
"开头的每一行 - >将它们写入临时文件/缓冲区{
'的位置在charsequence" namespace
" }
'的位置在文件答案 2 :(得分:0)
这是非常主观的。我在伪代码中看到了以下算法:
usingsLines = new HashSet<string>();
newFile = new StringBuilder();
foreeach (file in listOfFiles)
{
var textFromFile = file.ReadToEnd();
var usingOperators = textFromFile.GetUsings();
var fileBody = textFromFile.GetBody();
newFile+=fileBody ;
}
newFile = usingsLines.ToString() + newFile;
// As a result if will have something like this
// using usingsfromFirstFile;
// using usingsfromSecondFile;
//
// namespace FirstFileNamespace
// {
// ...
// }
//
// namespace SecondFileNamespace
// {
// ...
// }
但请记住,如果两个不同的名称空间包含相同的类等,这种方法可能会导致名称空间冲突。要解决它,您需要手动修复它,或者除去using
运算符并使用名称空间的全名。
这几个链接也许有用: Merge files, Merge file in Java