我正在寻找快速而有效的方法来分割代码并将其用于新闻。我正在为编码杂志工作,为印刷机准备代码总是一个很大的问题,因为一栏中的空间有限。现在我手动完成,非常烦人。让我给你举个例子。这是我正在处理的代码(已经按照我自己的风格格式化/吐出),它适用于Android:
private void GetFiles() {
listBox1.Items.Clear();
var storeFile = IsolatedStorageFile.
GetUserStoreForApplication();
string fileString = System.IO.Path.GetFileName("*");
string[] files = storeFile.GetFileNames("*");
for (int i = 0; i < storeFile.GetFileNames("/" +
fileString).Length; i++) {
String fileName = storeFile.GetFileNames(fileString)[i];
String ext = fileName.Substring(fileName.Length - 3);
if (ext == "png") listBox1.Items.Add(fileName);
} }
请注意
var storeFile = IsolatedStorageFile.
GetUserStoreForApplication();
是一行。对于按列来说太长了,这就是为什么我用最近的逻辑断点(此处为 - 点)拆分并用4个空格缩进行的第二部分(内联总是缩进2个空格)。我知道,这不是最好的方式,很难理解。这就是我从广泛的软件开发人员那里寻找权威答案的原因。我不仅需要使用C ++代码,还需要使用Assembler,JavaScript,Ruby和Python。最后一个是一个单独的问题 - 它是缩进的,所以我必须特别小心缩进。
所以,问题是:这是在杂志有限空间格式化代码的最佳方式吗? 你更喜欢哪种方式?请提出自己的想法。每个答案都受到高度赞赏。
UPD :以下是杂志现在的样子:。它可以帮助您理解问题。太长的行被'\'分割,行的最后一部分缩进。不太明显,不是吗? =(
答案 0 :(得分:3)
为什么不简单地使用Eclipse内置的代码格式化程序。您可以轻松配置最大长度等。然后你只需使用ctrl + shift + f根据你定义的代码风格进行格式化。
啊,我没有意识到这不是一个特定的Java问题。您在此处粘贴的代码无法编译,编辑器拒绝对其进行格式化。但是,如果我使用你的截图,它默认看起来像这样(我改变了最大行长度):
if (Input.GetKeyDown("space")) {
Vector3 prosition = new Vector3(
tranform.position.x,
transform.position.y + 1,
transform.position.z);
}
Instantiate(ProjectilePrefab, position,
Quaternion.Identiy);
}
答案 1 :(得分:1)
所以...在这个循环中你要检索一个完整的文件列表,测试长度,然后再次获得完整的文件列表(除了略有不同,因为你遗漏了"/"
前缀)并希望那里仍然是i
元素。您可以像文件一样多次重复此过程,以实现O(2n^2)
的美味时间复杂度。
你当然是将这个功能作为不做的例子发布,对吗?
为了给出我对布局的偏好,我宁愿你分开=
如果它适合......但是现在你已经用样本图像进行了编辑,看起来你的空间更小了与你第一次暗示相比。
如果您实际上尝试发布较便宜的算法,则可以选择将结果搜索存储在变量中,并缩短该循环中的大部分行...