跳到主要內容

發表文章

【Java語言】StringUtils 檢查字串是否空

此系列文章主要會記錄我在工作上遇到的程式語法。 工作上很常讀取字串,如網頁輸入後欄位內容、讀取DB內容等是不是有空值,就有用到這個方法,來判斷字串內容。 較常見的語法就是: StringUtils.isBlank(): 用來判斷字串是否為空,字串內容包含為空(null)、空字串符號、空格,皆會回傳true。 StringUtils.isNotBlank():此方法就是相反,檢查字串是否為null、是否為空字串、是否只有空格符號。 String str = “”; boolean isBlank = StringUtils.isBlank(str); System.out.println(isBlank) 工作上的寫法會是直接在條件上判斷: if (StringUtils.isBlank(str)) { //做相對應的處理 } StringUtils是 Apache Commons Lang函式庫,主要是處理「字串」類。 這邊列出常見的方法: 字串是否為空 isBlank() isEmpty() isNumberic() isAlphabetic() 字串轉換 upperCase() lowerCase() capitalize() replace() substring() 字串格式化 join() format() trim() split() [Java語法範例] // 判斷字串是否為空  // true boolean isBlank = StringUtils.isBlank(""); // 將字串轉換為大寫  // HELLO String upperCase = StringUtils.upperCase("hello"); // 將字串中的某個字串替換為另一個字串 // goodbye world String replaced = StringUtils.replace("hello world", "hello", "goodbye"); // 截取字串的子字串 // world String substring = StringUtils.substring("hello world", 5); // 將字串陣列合併為一個字
最近的文章

【閱讀心得】走出關係焦慮 擺脫負面自我

  心得: 今年遇到很多焦慮的事情,工作(擔心過不了試用期等)、愛情(著急等待訊息等)上等等,我在網路上看到一篇文章的出處是此書「走出關係焦慮 擺脫負面自我」,立馬預約本書來讀。 本書分了很多不同篇章(親情、友情、愛情、職場等)的焦慮,你可以針對自己有興趣的部分去閱讀,每個篇章最後面也會帶領讀者去與內在對話 因為曾經接觸過催眠,所以知道自己只靠閱讀與內在對話,沒辦法深入其境,必須有人帶領才能真正走入內心,這部分我是跳過,我只想了解焦慮背後的原因。 這邊列出我在閱讀本書時,內心有共鳴、感觸的部分內容: 作者一開始先讓我們認識「焦慮」這件事: 容易焦慮的人,其實心靈存款有破洞,一直感受不到穩定的愛、安全感和自我價值。想擁有自信,不是讓自己拼命做來滿足他人,要回到自己身上,補起破洞,讓心靈存款開始累積。 「焦慮,其實是為了保護你」,保護我們在遇到真正危險前有所準備。 例如:有毒的焦慮中(如工作有責任感,扛起整個部門;覺得自己過不好,對生活有很多煩惱拼命賺錢等,但又達不到標準更覺得自己過不好)。 而我們為了掩蓋焦慮,或是空洞又空虛的迷茫感,可能暴飲暴食或瘋狂埋首工作,而出現另一種癮頭。 而作者也要我們去察覺自己腦袋中的思緒是甚麼:所有的事情都是我們腦子自己想出來的,因此你要先好好觀察自己的思想。檢視一下,你腦袋都在想甚麼,圍繞甚麼轉?這些就是有毒的焦慮關鍵,腦袋的思緒正在「用錯誤的方式詮釋現實」 那我們要如何判我們是否處於焦慮中,作者介紹了「容納之窗」,一個人面對壓力時,身心可承受的範圍。超過這個窗,就會有其他問題產生。可以觀察自己內心是屬於下列何種狀態: 過度激烈反應(超出容忍):焦慮、攻擊、逃跑 容納之窗 (容忍範圍內):放鬆、專心、有能力處理壓力 過低激發反映(低於容忍):憂鬱、麻木、空虛 而面對焦慮,作者提點:與情緒同在,安頓散亂的心:情緒的存在,是讓你去「感受」,提醒你生命正發生一些事,要你去經歷。 當產生了「忌妒又羨慕的情緒」:感覺自己不足,便經常看見他人所擁有的一切。因為你沒有仔細審視自己所擁有的。自己認為所理所當然的事物,其實或許也是他人想擁有的。 當「自我」太多、太強、太弱、太雜,會升起許多煩惱和痛苦,阻礙我們去做真正想做的事情,或甚至眼前需要做好的事。 當有這種情緒時,可以重新將眼光放回自己,去挑選三件喜歡自己三項

【閱讀心得】人工智慧最後的秘密

【個人心得】 因為最近對AI有興趣,借了相關的書來看。 看完本書才知道,原來AI技術的發展,我們在享用科技服務時,背後也有許多不為人知的一面,忽略了背後所付出的代價, 例如跨國電力所製造的海洋電纜,已讓馬來西亞的橡膠樹從地球上消失殆盡。 我們總是看到AI展現的優點,在任何應用上的亮眼表現,例如自駕車、醫療診斷、語音辨識等,但卻沒認知到發展AI「背後的代價」。 作者為我們開出另一條新觀點,當我們全心全意投入AI的技術時,其實背後牽扯許多問題,像是低價勞工、資源競爭、資料分類問題、情感定義、權力鬥爭等, 作者把這些議題,用獨立的篇章闡述各個問題樣貌。 印象很深的是,其實發展新技術時,誰掌握了,誰就有話語權,他可訂定整個規則、架構,例如政府可以依照自己的目的去制定AI相關法律,例如中共用天網更嚴格監控人民等,一項技術會因為一個國家的文化而有不同的規範。 對於地球資源的消耗,我是屬於一個樂觀主義者,地球資院要用玩了,那就去外星探索。 (當然,在生活上使用資源時,是能省就省,不是因為樂觀就可以無所消耗) 【本書內容】 書想要闡述的中心問題是: 「智慧是如何製造出來的」 「AI可能造成什麼問題點」 我整理了本書對AI的定義,可以從這些定義了解到,AI背後運作之龐大: 「人工智慧是具象的、也是實體的,由自然資源、燃料、人類勞動、基礎設施、物流、歷史和分類構成。」它是以大型資料集貨已定義的規則和獎勵,進行密集運算的訓練成果。要建立大規模AI需要資本,而確保資本能讓人工智慧系統最佳化的做法,最終都是為了服務既有的優勢利益而設計(誰出錢就服務誰)。 AI是一種想法、一種基礎設施、一種產業、一種權力運用的形式,也是一種觀看的方式。AI是高度組織化的資本體現,這些資本以龐大的採掘和物流系統為後盾,供應鏈環繞整個地球。 AI是從玻利維亞鹽湖和剛果礦誕生,由群眾外包工作者標記的資料建構而成,試圖對人類的行動、情感和身份進行分類。 所以探討AI,不是只有看它的成果應用,其背後也涉及多個層面,這些層面才是真正促成AI的核心,這邊簡單擷取出各個問題中的關鍵點: 地球資源:要建構自然語言處理和電腦視覺模型,需要消耗大量能源,水、電等,各個企業爭相推出更快更高效的模型,擴大AI的碳足跡。 勞工: AI靠著人類勞動構成。業主花小錢辦大事,數位勞工只拿到微薄薪資。 亞馬遜物流系統,讓員工必須與演算法保持同步

【邁向人工智慧工程師-學習記錄 Week5】

 111/11/14-11/20 : 心得: 找到好康免費學習資源: 資料結構( 高中資訊教師黃建庭的教學網站 ) 重整準備方法、調整閱讀順序,並詢問聯成相關就業資訊,以擬後續對策。 這週回花蓮一趟辦事情,整個呈現放鬆狀態,可能自己覺得進度超前?所以追了一下倚天屠龍記(2019),三天內把50集看完,主人翁的女人緣特強,特別喜歡蛛姐與無忌的感情,令人不捨。 ML篇: 聯成-Day2課程:k最近鄰法、認識ML、ML流程、特徵值計算、MNIST手寫辨識、辨識流程、認識scikit-learn套件、使用knn方法及手寫撰寫演算法。 程式篇: 資料結構:堆疊認識與特性、(黃老師)複習佇列及認識環狀佇列、(黃老師)複習鏈結串列 ML 聯成 - OpenCv-Day3課程: 形態學操作(影像擴增,縮減等)、設定值處理(影響處理,把影像做修改)

【邁向人工智慧工程師-學習記錄 Week4】

 111/11/7-11/13 : 心得: 本週意外找到「數學基礎與高階」的視頻教學,老師免費教學。 學習機器學習要先了解統計學,而非先了解機器學習,相反過來。 看不懂的地方先跳過(如正則化的L1、L2實際差異與公式),先了解其原理,之後在回頭複習。 程式篇 二次函式程式呈現 Django:安裝虛擬環境、git版本連接、安裝django。 演算法-資料結構: 鏈結串列: 結構(python class)、節點、資料與指標、讀取、新插入、刪除; 循環鏈結串列、雙向鏈結串列、時間複雜度(vs Array) 佇列 數學篇: 觀念: 最小平方法應用:了解其觀念及何謂線性迴歸、理解公式推導過程、使用numpy的polyfit()方法。 複習集合、排列組合、重複排列、組合 統計篇: 書本: 資料品質、母體、測量、抽樣;抽樣母體誤差、倖存者偏誤、自願者偏誤、沒觀者誤差 測量誤差、隨機誤差與偏誤。 線上: 統計學目的 了解抽樣、尺度 ML篇: 閱讀導論篇章:AI認識、神經網路、圖像識別、視頻識別 TensorFlow: Playground理解深度學習概念:調整超參數及觀察資料問題結果。 MNIST手寫數字:介紹、基本操作、顯示單筆及多筆影像 聯成OpenCv-Day1複習:影像基本操作 使用numpy.array 存取影像 隨機產生二維亂數組,模擬灰色影像並修改像素值。 讀取灰階影像並修改像素值 隨機產生二維彩色影像,並修改像素值 擷取ROI,一個區域/範圍的圖 應用:局部馬賽克、移花接木圖片 取得影像屬性:shape、size、dtype 影像加法運算練習:陣列相加 影像加權方法練習:addWeighted()方法、兩圖片加權練習。 聯成OpenCv-Day2課程: 認識ML、練習手寫數字資料集、K最近鄰法

【邁向人工智慧工程師-學習記錄 Week3】

 111/10/31-11/6 這禮拜比較偏向學習原理及數學公式複習,也開始理解統計學的領域內容。(大學上課都忘光,標準差等) 程式篇 演算法:陣列認識及方法介紹(array()、index(x)、insert(i,x)、append()、remove(x)、pop(i) 字串方法應用(map、lambda等)。 數學篇: 二次函數:公式、關係、係數、最小與最大值、繪圖 統計相關: 資料特性(測量、難處、認識誤差) 隨機誤差與偏誤(差異、機率分佈、離散與連續、平均變異標準) ML篇: TensorFlow:深度學習原理介紹、TensorFlow Playground使用 聯成OpenCv-複習Day1:上週程式(影像操作) 讀取影像並顯示、同時讀取2個畫面

【邁向人工智慧工程師-學習記錄 Week2】

 week2:111/10/24-10/30 這個禮拜報名的課程開始上課,只有跟到30分鐘的課程,後續要教課,只能在另外看影片檔案,好可惜沒辦法馬上跟老師有互動。 數學篇 排列組合 畢氏定理、應用 聯立不等式與機器學習 資料科學:測量、資料誤差 函式庫篇 TensorFlow2(基本、開發工具) 程式: Python語言 Requests:BS4 擷取、計算、排序、下載與儲存圖 list、tuple、set、dict 特性及差異 for 的串列解析式 字串格式化 functions&methods:def、local and global、參數引數、return、import 演算法: 排列組合特性 時間、空間複雜度認識及繪圖 聯成篇: 書籍領取 Day1,課堂介紹、AI初步認識、OpenCV介紹及基本應用 問題:程式bug,常見類別是依照書籍範例後有問題,去調整。 (已解決)購買與租相關書籍 (已解決)code1: only integer scalar arrays can be converted to a scalar index x and y must have same first dimension, but have shapes (5,) and (1,) (已解決)code2: min() 方法問題,名稱一樣不可:'float' object is not callable