ZH
我的工具

代码格式化工具(C、C++、C#、Java、PHP、Go、Rust、Kotlin、Swift、Dart)

重新缩进 C、C++、C#、Java、PHP、Go、Rust、Kotlin、Swift 或 Dart 代码:K&R 或 Allman 花括号风格、2/4 个空格或制表符、switch case、每行一条语句。

格式化后的代码
行数
17
整理前:17 行

只会重新缩进各行并移动花括号,不会改写表达式、字符串和注释。把代码块一分为二的预处理行(#if)可能导致缩进错位。

我的工具 →
广告

从论坛、邮件或旧项目里粘贴来的代码,常常制表符和空格混用、花括号乱放、所有内容挤在一行。本格式化工具按花括号结构为 C、C++、C#、Java、PHP、Go、Rust、Kotlin、Swift 和 Dart 代码重新缩进:它了解各语言的字符串(原始字符串、逐字字符串、文本块、插值)、字符字面量和注释,所以字符串里的 { 不会影响缩进。你可以选择 K&R 或 Allman 花括号风格、2 个或 4 个空格或制表符、switch case 的缩进方式,以及是否让每条语句独占一行。

使用方法

  1. 粘贴代码并选择其语言。
  2. 选择缩进(2 个空格、4 个空格或制表符)和花括号风格。
  3. 选择 case 标签在 switch 内的位置,以及是否把语句拆到各自的行上。
  4. 复制格式化后的代码。

计算公式

一行的缩进 = 缩进单位 × (该行开头处未闭合的 { 块数 + 未闭合的 ( [ 所在行数),先处理行首的 } ) ]

字符串、字符字面量和注释中的括号会被忽略。以结束括号开头的行会在输出前先减少一级缩进。在 switch 内,case 标签缩进一级(或按 Go 和 Swift 的惯例不缩进),其下的语句再缩进一级。同一行中打开的括号只算一次,所以 foo(() => { 会让其函数体缩进一级。

示例

在示例 C 程序中,K&R 设置会把 { 提到 main(…) 之后,函数体缩进 4 个空格,for( 变为 for (,){ 变为 ) {。在 switch 内,case 'a': total+=1;break; 会被拆开,使 break; 在 case 下独占一行,case '{': 以及 printf 字符串里的 { 都被正确忽略。原来杂乱的 17 行整理成缩进均匀的 17 行。

常见问题

它会改变我代码的行为吗?

只会改变花括号和分号周围的空白与换行;词法单元不会被重新排序或改写,字符串和注释原样复制。对于 Go,它绝不会把 { 移到单独一行,因为 Go 会在那里自动插入分号。

它和 clang-format、gofmt 或 Prettier 一样吗?

不一样。那些工具会解析完整的语言,还会折行并对齐表达式。本工具只做重新缩进和整理空格,这足以让大多数粘贴来的代码变得可读;如需项目的精确风格,请运行项目自己的格式化工具。

为什么有一行的缩进仍然很奇怪?

通常是括号不平衡,或 #if/#else 的各个分支分别打开了花括号。括号不匹配时,备注里会提示。

我的代码会被上传吗?

不会,格式化在你的浏览器中完成。

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). 代码格式化工具(C、C++、C#、Java、PHP、Go、Rust、Kotlin、Swift、Dart). https://kakao.mobile/zh/tools/code-beautifier/

MLA

“代码格式化工具(C、C++、C#、Java、PHP、Go、Rust、Kotlin、Swift、Dart).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/code-beautifier/.

广告