[語法] 陣列中資料存逗號的截斷問題

作者: conlich (clcy)   2016-12-21 10:55:00
各位前輩好:
小弟是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[]
作者: conlich (clcy)   2016-12-21 10:56:00
如果理解錯誤也請前輩指導一下
作者: LZN (秋)   2016-12-21 11:38:00
把你的做法貼出來看看吧
作者: ssccg (23)   2016-12-21 13:08:00
陣列不是用逗號分隔,問題是你用的是什麼陣列
作者: conlich (clcy)   2016-12-21 13:26:00
如上面補充:file裡的資料會變成只有abc
作者: dannypsnl (秦書)   2016-12-21 13:39:00
我剛試了,不會啊,file[0]還是abc,efg
作者: conlich (clcy)   2016-12-21 13:41:00
所以有可能是sm這個class搞得鬼,我用System.out.println去看也是,但一丟進sm裡執行就會有問題.對了,sm這個功能是要寄e-mail的功能,file會去夾檔案不知道有沒有關係,抱歉忘了說明這點
作者: LZN (秋)   2016-12-21 16:13:00
你的code沒有"再塞到另一個陣列"的行為, 可能要看sm這method的文件看是否有針對file參數的詳細說明
作者: conlich (clcy)   2016-12-21 16:33:00
不好意思,sm的file是String[],所以我認為是塞到另一陣列不知道這樣子算不算??
作者: j16598231 (滎鶄)   2016-12-21 16:44:00
你要進去看sm裡面是怎麼實作的。然後要再看一下java是怎麼傳參數的。
作者: conlich (clcy)   2016-12-21 17:00:00
好的,但只有class能夠看得到嗎?
作者: gmoz ( This can't do that. )   2016-12-21 17:21:00
你說file裡面只有abc是在哪裡看的? 跑完sm之後再另外印出?如果是跑完sm再印出來看 那就是sm有對你的陣列做了修改不過一個寄信的小API 想不到有啥理由去動你的陣列可以說一下你是怎麼知道file只有abc的嗎? foreach印出來看?
作者: conlich (clcy)   2016-12-21 17:29:00
是從error裡看出來的,因為這裡是附檔名稱,抓不到檔案就會產生error了,看了才發現在逗號被截斷了
作者: gmoz ( This can't do that. )   2016-12-21 17:51:00
誰吐的error? sm?如果只有一個元素,會不會跳ERROR? 確定丟進去的格式是對的?error可以貼出來看看嗎用try-catch把sm包起來 然後再後面把file[]印出來看才能確定搞不好sm的error是跟你說第一個元素abc格式錯了
作者: conlich (clcy)   2016-12-21 18:23:00
java.io.FileNotFoundException: filepath\abc (系統找不到指定的檔案。) <--- error這是sm吐出來的error
作者: ssccg (23)   2016-12-21 19:27:00
你自己想像太多了,sm訊息寫的字串不是你原本丟進去的,有太多可能的原因,"陣列放到另一個陣列時截斷"這點是不可能的...因為陣列就跟 , 一點關係都沒有String[]只是存String物件的參考,複製根本不會動到內容而且String還是Immutable,那個訊息一定是sm內對傳入的參數做其他處理後的結果
作者: conlich (clcy)   2016-12-21 21:06:00
原來如此,所以是我個人想像,那我還是在前置作業想辦法處理掉好了,謝謝。
作者: realmeat (真肉)   2016-12-23 10:51:00
String [] file = {"abc", "efg"};單純語法搞錯...
作者: conlich (clcy)   2016-12-26 16:07:00
你好,我的檔名是叫abc附檔名叫efg,所以我是寫入abc.efgfile[0]="abc,efg"; 這裡的"abc.efg"是打錯了,sorry誤導
作者: gmoz ( This can't do that. )   2016-12-26 20:03:00
先問你一下 你的API有沒有給範例或是文件
作者: conlich (clcy)   2016-12-27 09:30:00
沒有sample耶, 只有說API每個參數的型別,謝謝你。

Links booklink

Contact Us: admin [ a t ] ucptt.com