看板 java 關於我們 聯絡資訊
各位前輩好: 小弟是java新手,最近在寫一個功能時需要把文字塞進陣列裡,但是再塞到另一個 陣列時會發生如果第一次的文字內容裡包含逗號就會被截斷。導致資料不完全。 查了一下應該是因為陣列是用逗號來分隔資料,所以當文字中有包含逗號就會有問題 請問各位有什麼解法嗎? 謝謝大家。 補充: sm這是市面上的開發工具所附的class String file[]=null; file = new String[1]; file[0]="abc,efg"; sm(pop3Server, smtpServer, mailAddress, subject, contents, file, "text/html"); sm的file是 java.lang.String[] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.49.25 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1482288902.A.465.html
conlich: 如果理解錯誤也請前輩指導一下 12/21 10:56
LZN: 把你的做法貼出來看看吧 12/21 11:38
ssccg: 陣列不是用逗號分隔,問題是你用的是什麼陣列 12/21 13:08
※ 編輯: conlich (61.221.49.25), 12/21/2016 13:26:02
conlich: 如上面補充:file裡的資料會變成只有abc 12/21 13:26
dannypsnl: 我剛試了,不會啊,file[0]還是abc,efg 12/21 13:39
conlich: 所以有可能是sm這個class搞得鬼,我用System.out.println 12/21 13:41
conlich: 去看也是,但一丟進sm裡執行就會有問題. 12/21 13:41
conlich: 對了,sm這個功能是要寄e-mail的功能,file會去夾檔案 12/21 13:42
conlich: 不知道有沒有關係,抱歉忘了說明這點 12/21 13:42
※ 編輯: conlich (61.221.49.25), 12/21/2016 13:47:48
LZN: 你的code沒有"再塞到另一個陣列"的行為, 可能要看sm這method 12/21 16:13
LZN: 的文件看是否有針對file參數的詳細說明 12/21 16:13
conlich: 不好意思,sm的file是String[],所以我認為是塞到另一陣列 12/21 16:33
conlich: 不知道這樣子算不算?? 12/21 16:34
j16598231: 你要進去看sm裡面是怎麼實作的。 12/21 16:44
j16598231: 然後要再看一下java是怎麼傳參數的。 12/21 16:45
conlich: 好的,但只有class能夠看得到嗎? 12/21 17:00
gmoz: 你說file裡面只有abc是在哪裡看的? 跑完sm之後再另外印出? 12/21 17:21
gmoz: 如果是跑完sm再印出來看 那就是sm有對你的陣列做了修改 12/21 17:22
gmoz: 不過一個寄信的小API 想不到有啥理由去動你的陣列 12/21 17:22
gmoz: 可以說一下你是怎麼知道file只有abc的嗎? foreach印出來看? 12/21 17:23
conlich: 是從error裡看出來的,因為這裡是附檔名稱,抓不到檔案就 12/21 17:29
conlich: 會產生error了,看了才發現在逗號被截斷了 12/21 17:29
gmoz: 誰吐的error? sm? 12/21 17:51
gmoz: 如果只有一個元素,會不會跳ERROR? 確定丟進去的格式是對的? 12/21 17:51
gmoz: error可以貼出來看看嗎 12/21 17:52
gmoz: 用try-catch把sm包起來 然後再後面把file[]印出來看才能確定 12/21 17:52
gmoz: 搞不好sm的error是跟你說第一個元素abc格式錯了 12/21 17:53
conlich: java.io.FileNotFoundException: filepath\abc (系統找 12/21 18:23
conlich: 不到指定的檔案。) <--- error 12/21 18:23
conlich: 這是sm吐出來的error 12/21 18:27
ssccg: 你自己想像太多了,sm訊息寫的字串不是你原本丟進去的,有 12/21 19:27
ssccg: 太多可能的原因,"陣列放到另一個陣列時截斷"這點是不可能 12/21 19:28
ssccg: 的...因為陣列就跟 , 一點關係都沒有 12/21 19:28
ssccg: String[]只是存String物件的參考,複製根本不會動到內容 12/21 19:31
ssccg: 而且String還是Immutable,那個訊息一定是sm內對傳入的參數 12/21 19:33
ssccg: 做其他處理後的結果 12/21 19:34
conlich: 原來如此,所以是我個人想像,那我還是在前置作業想辦法 12/21 21:06
conlich: 處理掉好了,謝謝。 12/21 21:06
realmeat: String [] file = {"abc", "efg"}; 12/23 10:51
realmeat: 單純語法搞錯... 12/23 10:52
conlich: 你好,我的檔名是叫abc附檔名叫efg,所以我是寫入abc.efg 12/26 16:07
conlich: file[0]="abc,efg"; 這裡的"abc.efg"是打錯了,sorry誤導 12/26 16:08
gmoz: 先問你一下 你的API有沒有給範例或是文件 12/26 20:03
conlich: 沒有sample耶, 只有說API每個參數的型別,謝謝你。 12/27 09:30