我正在Java程序中生成一個graphviz DOT文件(這裏是一個例子:http://www.graphviz.org/Gallery/directed/cluster.html)。我想根據大括號自動縮進這個文件。有沒有簡單的方法在Java中做到這一點?謝謝!縮進Java輸出
Q
縮進Java輸出
2
A
回答
2
像這樣的嵌套上下文最好用堆棧表達,但是你可以通過計算來做這種解析的便宜版本 - 它不是真正的「正確」,因爲它不是完整的解析器(一方面,這沒有考慮到註釋,並且可能有其他方式可能會中斷,如包含括號的名稱),但足夠用於一次性:
psuedocode
int indent=0;
for (line):
print ('\t' for each indent) + line
if (line.contains('{'))indent++
if (line.contains('}')} indent --;
如果行尚未在括號內,因爲你的樣本輸出顯示打破,打破對紐林輸入迭代線es,'{'或'}'。
0
我想這個問題有各種解決方案。根據需求做出迴應,您可能需要一個優化的解決方案,它可以讓您輕鬆完成最終輸出的模板。然後,您需要了解graphviz文件格式,並可能將代碼按塊標識爲節點。然後這個工作很簡單:輸入節點(我的意思是代表節點)代表深度爲i的indents = i * 4空格。
因爲我沒有關於graphviz文件的知識,所以我很可能會簡單地將它視爲純文本文件。 因此,所有你需要做的是
1. open the graph file,
2. create a temp file for the final output
3. set indent = 0.
4. read one line, if not null, search the line for braces, for every opening brace, ++indent
and --indent for every closing brace.
NOTE:you need to escape the escaped braces if there is any. say "{" or \{
5. write the line to the temp file with preceding spaces = 4*indent (assuming you want 4 spaces for every indent)
6. close both files. if needed, replace the old file with the temp file.
正如我可能不正確地理解你的equestion,僞代碼可能是沒用的functionwise。但你有這個想法;-)
相關問題
- 1. 如何縮進cout輸出?
- 2. 在python輸出中縮進
- 3. #系統的縮進輸出
- 4. PHamlP不縮進輸出
- 5. 縮進Bash腳本輸出
- 6. Java XML輸出 - 子項的正確縮進
- 7. 使用縮進作爲代碼的Java輸出格式:
- 8. 使用stringstream縮進/中心輸出
- 9. Actionscript 3上的JSON輸出縮進
- 10. C++自定義輸出流與縮進
- 11. 如何保留輸出縮進?
- 12. Rmarkdown:HTML輸出中TOC項目的縮進
- 13. Yii框架,格式/縮進輸出
- 14. 控制ASP.Net中的輸出縮進MVC
- 15. 使用var_dump數組輸出的縮進
- 16. PHP ReadFile輸出一個縮進?
- 17. 如何使xsl轉換縮進輸出?
- 18. C++ ofstream輸出不能正確縮進
- 19. node-restify:如何縮進JSON輸出?
- 20. 在Bash腳本中縮進printf命令沒有在輸出中出現縮進
- 21. 帶輸入/輸出流的Java進程
- 22. Java模式縮進
- 23. Java代碼縮進
- 24. 輸出壓縮HTML
- 25. SPHINX輸出壓縮?
- 26. 輸入隱藏,輸出有過多的縮進
- 27. 使用輸入/輸出流的Java LZ4壓縮
- 28. C++讀取java進程輸出
- 29. Java二進制文件(.raw)輸出
- 30. 從java進程獲取輸出。