見づらい配列を Xcode コンソールにテーブル表示します。
というのをやってみました。
等幅フォント 英語:日本語 = 1:2 が必要です。
Releases · yuru7/moralerspace https://t.co/krcutISif3
— chanzmao (@maochanz) February 11, 2024
🤔 文字数のカウント
String.isASCII
を使ってアスキー文字なら 半角 で 1、
その他は 全角 で 2、
としてカウントします。
print(
Array("1234ご")
.map { $0.isASCII ? 1 : 2 }
.reduce(0, +)
)
// 6
Array.reduce()
で一文字ごとのカウント数を合計しています。
👉 reduce(_:_:) | Apple Developer Documentation
こんなことができるんですね !
🤔 文字列のパディング
String.padding(toLength:withPad:startingAt:)
を使おうとしたけれど、
うまくいかなかったので以下のようにやります。
print(
String(
repeating: "*",
count: 10 - 6
) + "みかん"
)
// ****みかん
半角10文字分まで文字列「みかん」をパディングしています。
👉 padding(toLength:withPad:startingAt:) | Apple Developer Documentation
🤔 まとめ
そんな処理を使って、
以下の順番で処理していきます。
1. 縦横を入れ替え(転置)したあと、
2. 1行ごとに最大半角文字数をカウントして、
3. それぞれをパディングして、
4. 再度転置して出力する
転置を使うことで、
テーブル縦方向の最大文字数を取得しやすくしています。
👉 【Swift】2次元配列 で 転置行列 ( transpose matrix )
しかし、
絵文字の文字幅って微妙です。