質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.05%

  • Swift

    5913questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • 配列

    444questions

    配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

[swift4] ダブルクオート付きCSVを2次元配列に格納したい

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 127

tyobigoro

score 109

ダブルクオート付きCSVを2次元配列に格納したいのですが、うまく行きません。
良い方法があれば教えてください。

とりあえず、こんな感じでやってみたのですが、うまく行きません。

let csvStr = "","AA","1,000","2,000"
"","BB","2,000","1,500"
"","CC","1,500","800"

let csvArray = csvStr.components(separatedBy: .newlines)

for csvFile in csvArray {
    let csvSplit = csvFile.components(separatedBy: "\n")
    array.append(csvSplit)
}


こうしたいのですが、
[["", "AA", "1,000", "2,000"], ["", "BB", "2,000", "1,500"], ["", "CC", "1,500", "800"]]
こうなってしまいます。
[["\"\",\"AA\",\"1,000\",\"2,000\""], ["\"\",\"BB\",\"2,000\",\"1,500\""], ["\"\",\"CC\",\"1,500\",\"800\""]]

エスケープの\がはずれなくて困ってます。
for-in文途中のcsvFileをプリントすると、
"","AA","1,000","2,000"
となるのですが、
配列に入れると、\がついてしまいます。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 91.05%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    swift SNS時刻形式

    swiftである時間をNSDate()で保存しておいて、取り出して表示する際にその時間を表示させたいです。 形式としては 現在時刻から60秒以内なら、 〜秒前

  • 解決済

    csvファイルを多次元配列に格納する方法は?

    Swift3.0でcsvファイルの文字列を多次元配列に格納したいと思っています。 イメージはカンマ5個をひとまとまりとし、例えば 1,2,3,4,5,6,7,8,9,10,

  • 解決済

    swiftでcsvファイルを読み込みたいです

    前提・実現したいこと xcode初心者です。四択問題のアプリを作っているのですが、本に書かれいてるcsvファイルの読み込み方がどうやら古い方法みたいなので、どうしたらいいのかわか

  • 解決済

    swift3 文字列から数字データを抽出する

    例えば、”気温19.5度、天候晴れ”という文字列があるとします。この文字列の中の”19.5"だけを抽出したいのですが、わからずネット上にあった以下のコードを試しましたがValue 

  • 解決済

    Swift3 mediaItem.lyricsでの「改行」とは?

    前提・実現したいこと Swift3でMPMusicPlayerControllerを使って取得したmediaItem.lyricsの歌詞テキストから改行コードを目印に各行ごとに配列

  • 解決済

    NSDateのExtension

    この記事のコードをSwift3にして書いているのですが、 22行目でこのエラーが出てしまいます どのようにすればエラーを解決できるのでしょうか? ご教授お願いいたします。 i

  • 解決済

    Swift 配列の各要素の指定文字列を削除する

    前提・実現したいこと 文字列の入った配列の 各要素の先頭から7文字 を削除したいです。 var testAry = ["5257353くだもの", "3917253サッカーボー

  • 解決済

    Swift 配列のすべての要素の特定の文字列までを削除したい

    前提・実現したいこと var Ary = ["Apple//りんご", "ぶどう//Grape", "Banana//バナナ", "Pineapple//パイナップル", "//"

同じタグがついた質問を見る

  • Swift

    5913questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • 配列

    444questions

    配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。