Java思維題
阿新 • • 發佈:2018-09-29
不為 目標 += equals you null boolean for -s
1、求取字符串中出現的第一個非重復字符。
比如: "hello" 中的 h, "hello, how r you?" 中的 e
2、使用26字符母實現加密
比如: StringUtil 加密後的結果為 FgevatHgvy,Hello 加密的結果為 Uryyb
3、翻轉一個字符串
比如:“你好啊!” 翻轉成 "!啊好你"
4、檢查一個字符串是否為空(包括 null 的判斷)
實現方法(個人想法):
第一題
//第一種實現方式 public String getIsStr(String str){ String[] arr = str.replaceAll("\\s","").split(""); for (int i = 0; i <arr.length ; i++) { if( str.lastIndexOf(arr[i]) == str.indexOf(arr[i]) ){ return arr[i].toString(); } } return ""; } //第二種實現方式 String str ="hello, how r you?"; String liststr = str.replaceAll("[^a-zA-Z]",""); String[] listarr = str.split(""); for (int i = 0; i <listarr.length ; i++) { boolean flag = true; for (int j = i+1 ;j<listarr.length ;j++){ if(listarr[i].equals(listarr[j])){ flag = false; continue; } } if (flag){ System.out.println(listarr[i]); break; } }
第二題
public String rotate(String str){ // 接收結果的變量 String result =""; //"a","b","c","d","e","f","g","h","i","j","k","l","m" //"n","o","p","q","r","s","t","u","v","w","x","y","z" //大小寫字符數組 String [] lower = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; String [] upper = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; //將 目標字符串 去掉 裏面一些符號 並且 分割 String [] arr = str.replaceAll("\\s","").split(""); for (int i = 0; i <arr.length ; i++) { //將目標值都跟 小寫字符數組 對一遍 當目標值等於 lower裏 相對應的值時, 使用一個小算法 for (int j = 0 ; j < lower.length; j++) { if( arr[i].equals(lower[j]) ){ // 比如 當 目標值 是 a 那麽通過計算 得到將是 lower數組的 u result +=lower[(j + 13)%26]; } } //將目標值都跟 大寫字符數組 對一遍 當目標值等於 upper裏 相對應的值時, 使用一個小算法 for (int k = 0; k <upper.length ; k++) { if( arr[i].equals(upper[k]) ){ // 比如 當 目標值 是 A 那麽通過計算 得到將是 lower數組的 U result +=upper[(k + 13)%26]; } } } return result; }
第三題
//第一種方式 public String reverse(String str){ //將字符 分割成 字符數組 String [] arr = str.split(""); //獲取 字符數組的長度 int size = arr.length; //拿一個結果變量來接收 String result = ""; //循環 for (int i = 0; i <arr.length ; i++) { // 倒取 數組的值 賦予 結果變量 result += arr[ --size]; } return result; } //第二種方式 public String reverse1(String str){ StringBuilder result =new StringBuilder(str); return result.reverse().toString(); }
第四題
public boolean isEmpty(String str){ //字符串對象和字符串變量這兩個概念的區別 //字符串變量保存一個字符串對象的引用 //判斷字符串是否空涉及兩個層次 //1、首先判斷字符串變量的引用是否為空,即空對象的概念,用null來判斷,可以用== null;(註意不能用equals(null),在參數為null情況下,返回值永遠是false) //2、是在不為空對象的情況下,在判斷字符串對象是否為空串,即長度為0.用length()==0 if(!( str == null ||str.length() == 0)){ return true; } return false; }
Java思維題