华为Java机试题
1.程序?qū)崿F(xiàn)目標(biāo):?輸入一個(gè)字符串,將其各個(gè)字符對(duì)應(yīng)的ASCII值加5后,輸出結(jié)果。
??? 程序要求:該字符串只包含小寫字母,若其值加5后的字符值大于'z',將其轉(zhuǎn)換成從a開始的字符。
?
package com.xcbeyond;/*** @author xcbeyond* 2015-5-7下午10:37:43* 1.程序?qū)崿F(xiàn)目標(biāo): 輸入一個(gè)字符串,將其各個(gè)字符對(duì)應(yīng)的ASCII值加5后,輸出結(jié)果。* 程序要求:該字符串只包含小寫字母,若其值加5后的字符值大于'z',將其轉(zhuǎn)換成從a開始的字符。*/ public class StringParseASCII {public static void main(String[] args) {System.out.print(stringParseASCII("abx"));}public static String stringParseASCII(String str){StringBuffer result = new StringBuffer();char tmp;for(int i = 0;i<str.length();i++){tmp = (char)(str.charAt(i)+5);if(tmp > 'z') {result.append('a');}else {result.append(tmp);}}return result.toString();}}?
?
?
?
?
?
?
2.程序?qū)崿F(xiàn)目標(biāo):求一個(gè)整型數(shù)組中元素的平均值,并統(tǒng)計(jì)其中大于和小于此平均值的元素的個(gè)數(shù)。
? 程序要求:輸入:整型數(shù)組中的元素個(gè)數(shù)及各個(gè)元素。
???????? ? ? ? ? ? ? 輸出:整型數(shù)組中元素的平均值,大于和小于此平均值的元素的個(gè)數(shù)。
?
package com.xcbeyond;import java.util.Arrays;/*** * @author xcbeyond* 2015-5-7下午11:06:29*2.程序?qū)崿F(xiàn)目標(biāo):求一個(gè)整型數(shù)組中元素的平均值,并統(tǒng)計(jì)其中大于和小于此平均值的元素的個(gè)數(shù)。*程序要求:* 輸入:整型數(shù)組中的元素個(gè)數(shù)及各個(gè)元素。* 輸出:整型數(shù)組中元素的平均值,大于和小于此平均值的元素的個(gè)數(shù)。*/ public class CountAvg {public static void main(String[] args) {int[] array = {1,23,4,13,6};System.out.println(Arrays.toString(array)+"的平均值:"+avg(array)+"\n" +"大于和小于平均值元素的個(gè)數(shù)分別為:"+Arrays.toString(countAvg(array)));}public static int[] countAvg(int[] array) {int gt = 0; //grater thanint lt = 0; //less thanint[] result = {0,0};int average = avg(array);for(int i = 0;i<array.length;i++) {if(array[i]>average) {gt++;}else if(array[i]<average) {lt++;}}result[0] = gt;result[1] = lt;return result;}/*** average* @param array* @return*/public static int avg(int[] array) {int average = 0;int sum = 0;for(int i = 0 ;i<array.length;i++) {sum += array[i];}average = sum/array.length;return average;}}?
?
?
?
?
3、手動(dòng)輸入一個(gè)存儲(chǔ)整數(shù)的數(shù)組,要求輸出數(shù)組里面的2個(gè)最大值。
?? 實(shí)例:?
???????????? 輸入:1,2,5,9,84,3,2
???????????? 輸出:84,9
?
package com.xcbeyond;import java.util.Arrays; /*** @author <span style="font-family:Calibri;">xcbeyond</span>* 2015-5-7下午11:35:13*3、手動(dòng)輸入一個(gè)存儲(chǔ)整數(shù)的數(shù)組,要求輸出數(shù)組里面的2個(gè)最大值。* 實(shí)例: * 輸入:1,2,5,9,84,3,2* 輸出:84,9*/ public class FindMaxTwoNum {public static void main(String[] args) {int[] array = {1,2,5,9,84,3,2};System.out.println("數(shù)組"+Arrays.toString(array)+"里面最大的2個(gè)數(shù)為:");findMaxTwoNum(array); <span style="font-family:Calibri;"> //方法二:// </span>?}public static void findMaxTwoNum(int[] array) {int[] result = {0,0};for(int i = 0 ;i<array.length;i++) {for(int j = 0;j<array.length-i-1;j++) {if(array[j]<array[j+1]) {int tmp;tmp = array[j];array[j] = array[j+1];array[j+1] = tmp;}}}System.out.println(array[0]+"、"+array[1]);}}?
?
?
?
?
4、回文數(shù)字判斷。
題目描述:
??? 有這樣一類數(shù)字,他們順著看和倒著看是相同的數(shù),例如:121,656,2332等,這樣的數(shù)字就稱為:回文數(shù)字。編寫一個(gè)函數(shù),判斷某數(shù)字是否是回文數(shù)字。
??? 要求實(shí)現(xiàn)方法:
public?String?isPalindrome(String?strIn);
【輸入】strIn:?整數(shù),以字符串表示;
【返回】true:?是回文數(shù)字;
????????????? false:?不是回文數(shù)字;
?
【注意】只需要完成該函數(shù)功能算法,中間不需要有任何IO的輸入輸出
package com.xcbeyond;import java.util.Scanner;/*** @author xcbeyond* 2015-5-10下午03:46:56*4、回文數(shù)字判斷。*題目描述:* 有這樣一類數(shù)字,他們順著看和倒著看是相同的數(shù),例如:121,656,2332等,這樣的數(shù)字就稱為:* 回文數(shù)字。編寫一個(gè)函數(shù),判斷某數(shù)字是否是回文數(shù)字。*/ public class IsPalindrome {public static void main(String[] args) {System.out.print("請(qǐng)輸入一個(gè)回文數(shù)字:");Scanner console = new Scanner(System.in);String numStr = console.nextLine();if(isPalindrome(numStr)) {System.out.println(numStr+"是回文數(shù)字!");}else{System.out.println(numStr+"不是回文數(shù)字!");}}public static boolean isPalindrome(String str){boolean result = false;for(int i = 0 ;i<=str.length()/2-1;i++) {if(str.charAt(i) == str.charAt(str.length()-1-i)) {result = true;}else {result = false;}}return result;}}?
?
?
?
?
?
?
5、要求:隨機(jī)打印50個(gè)隨機(jī)(4-10長(zhǎng)度)的字符串,要求字符串包含的范圍是所有的英文字母包含大小寫和數(shù)字,按照編碼順序排序,每行打印4個(gè),要求首字符對(duì)齊
?
package com.xcbeyond;import java.util.HashSet; import java.util.Set;/*** * @author xcbeyond* 2015-5-10下午04:05:42*5、要求:隨機(jī)打印50個(gè)隨機(jī)(4-10長(zhǎng)度)的字符串,要求字符串包含的范圍是* 所有的英文字母包含大小寫和數(shù)字,按照編碼順序排序,每行打印4個(gè),要求首字符對(duì)齊*/ public class RandomStr {public static void main(String[] args) {Set<String> setStr = new HashSet<String>();for(int i = 0 ;i<50;i++) {setStr.add(randomStr(5));}int count = 1;for(String i:setStr){System.out.print(i+" ");if(count%4 == 0) {System.out.println();}count++;}}/*** @param strLen:隨機(jī)字符串的長(zhǎng)度*/public static String randomStr(int strLen) {char[] str = new char[strLen];int i = 0;while(i<strLen) {int f = (int)Math.random()*3;if(f == 0) {str[i] = (char)('a' + Math.random()*26);}else if(f == 1) {str[i] = (char)('A' + Math.random()*26);}else {str[i] = (char)('0' + Math.random()*10);}i++;}return new String(str);} }?
?
?
?
?
?
?
6.手動(dòng)輸入一個(gè)字符串,僅限小寫字母,統(tǒng)計(jì)并輸出每個(gè)字符在字符串中出現(xiàn)的次數(shù),并輸出。提示(可以用Map)
實(shí)例:
輸入:aaabbbccc
輸出:a?3
?????????? b?3
??? ? ? ?? c?3
?
package com.xcbeyond;import java.util.HashMap; import java.util.Map;/*** * @author xcbeyond* 2015-5-10下午04:47:45* 6.手動(dòng)輸入一個(gè)字符串,僅限小寫字母,統(tǒng)計(jì)并輸出每個(gè)字符在字符串中出現(xiàn)的次數(shù),并輸出。* 提示(可以用Map)* 實(shí)例:* 輸入:aaabbbccc* 輸出: a 3* b 3* c 3*/ public class GetCharCount {public static void main(String[] args) {String str = "aaabbbrcc";String reg = "^[a-z]*$";if (str.matches(reg)) {Map<Character, Integer> map = getCharCount(str);for (Map.Entry<Character, Integer> e : map.entrySet()) {System.out.println(e.getKey() + ": " + e.getValue());}}else {System.out.println("輸入的字符不合法,不是小寫字母");}}public static Map<Character,Integer> getCharCount(String str) {Map<Character,Integer> map = new HashMap<Character, Integer>();char[] arr = str.toCharArray();for(int i = 0;i<str.length();i++) {if(!map.containsKey(arr[i])) {map.put(arr[i], new Integer(1));}else {map.put(arr[i],map.get(arr[i])+1);}}return map;} }?
?
?
?
?
?
7、要求實(shí)現(xiàn)方法public?String?addTwoBigNumber(String?s1,string?s2)
?大數(shù)相加,注意處理異常
?
public?class?Test{
public?String?addTwoBigNumber(String?s1,string?s2)
{
????return?"";
}
?
public?static?void?main(String[]?args)
{
?????Test?test?=?new?Test();
?????test.addTwoBigNumber("123456789","987654321")
?
}
}
?
8、比較二維數(shù)組列最小值,組成一個(gè)新數(shù)組返回。(實(shí)現(xiàn)核心算法,不需要使用IO)
輸入:intArr?=?{{5,6,1,16},{7,3,9}}
輸出:intArrs?={1,3}
?
package com.xcbeyond;import java.util.Arrays;/*** @author xcbeyond* 2015-5-10下午09:09:20*8、比較二維數(shù)組列最小值,組成一個(gè)新數(shù)組返回。(實(shí)現(xiàn)核心算法,不需要使用IO)* 輸入:intArr = {{5,6,1,16},{7,3,9}}* 輸出:intArrs ={1,3}*/ public class GetColMin {public static void main(String[] args) {int[][] arr = {{5,6,1,16},{7,3,9}};System.out.println(Arrays.toString(getColMin(arr)));}public static int[] getColMin(int[][] arr) {int[] minArr = new int[arr.length];for(int i = 0;i<arr.length;i++) {int[] tmp = arr[i];Arrays.sort(tmp);minArr[i] = tmp[0];}return minArr;}}?
?
?
?
?
9.?輸入:a?aa,cat?tiger.123dd?
輸出:?tiger
功能描述:鍵盤輸入一句話
???????????????輸出一句話中最常的單詞,如果最長(zhǎng)的出現(xiàn)多次,返回第一個(gè)。
???????????????這句話只包含數(shù)字字母和標(biāo)點(diǎn)。
?
package com.xcbeyond;import java.util.ArrayList; import java.util.Scanner;/*** * @author xcbeyond* 2015-5-10下午09:45:03*9. 輸入:a aa,cat tiger.123dd * 輸出: tiger* 功能描述:鍵盤輸入一句話* 輸出一句話中最常的單詞,如果最長(zhǎng)的出現(xiàn)多次,返回第一個(gè)。* 這句話只包含數(shù)字字母和標(biāo)點(diǎn)。*/ public class GetLongString {public static void main(String[] args) {System.out.println("請(qǐng)輸入一句話:");Scanner console = new Scanner(System.in);String str = console.nextLine();System.out.println("最長(zhǎng)的單詞為:"+getLongString(str));}public static String getLongString(String str) {String[] wordStr = str.split("[ ,.0-9]");int sum = 0;ArrayList<String> result = new ArrayList<String>();for(int i = 0;i<wordStr.length;i++) {if(sum<wordStr[i].length()) {sum = wordStr[i].length();result.add(wordStr[i]);}}return result.get(result.size()-1);}}?
?
?
?
?
?
?
10.?功能描述:將字符串中的字母全部替換成字母的下一個(gè)字母,
要是最后一位是z或Z則替換為a或A。
輸入:aBxyZ
輸出:bCyzA
?
package com.xcbeyond; /*** * @author xcbeyond* 2015-5-10下午10:11:02*10. 功能描述:* 將字符串中的字母全部替換成字母的下一個(gè)字母,要是最后一位是z或Z則替換為a或A。* 輸入:aBxyZ* 輸出:bCyzA*/ public class NextString {public static void main(String[] args) {String str = "aBxyZ";System.out.println(nextString(str));}public static String nextString(String str) {String result = "";char[] arr = str.toCharArray();for(int i = 0;i<arr.length;i++) {if(arr[i] == 'z' || arr[i] == 'Z') {arr[i] = (char)(arr[i]-25);}else if(arr[i]<='z'&&arr[i]>='a' || arr[i]<='Z'&&arr[i]>='A') {arr[i] = (char)(arr[i]+1);}}return String.valueOf(arr);}}?
?
?
?
?
?
?
11.?功能描述:判斷一個(gè)字符串中是否只含有相同的子字符串(子串長(zhǎng)度>=2)
輸入:abab?
返回:true
輸入:abcd
返回:false
?
要求實(shí)現(xiàn)方法:
public?boolean?checkString(String?data)
{
????//TODO
????return?false;
}
12.?功能描述:已知:yi?er?san?si?wu?liu?qi?ba?jiu?分別對(duì)應(yīng)123456789,
對(duì)一段只含有這幾種字符串的字符串進(jìn)行轉(zhuǎn)換,如:
輸入:yiersansan
輸出:1233
要求實(shí)現(xiàn)方法:
public?String?trunNumber(String?data)
{
????//TODO
????return?"";
}
13.?功能描述:刪除字符串中字符個(gè)數(shù)最少的字符,最少字符串有多個(gè),最少的要全部刪除
???????????????然后返回該子字符串。
輸入:asdasdas
輸出:asasas
package com.xcbeyond;import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry;/*** * @author xcbeyond* @date 2015/05/11 13:16:06*/ public class DeleteLittle {public static void main(String[] args) {String str = "asdasdas";System.out.println(deleteLittle(str));}public static String deleteLittle(String str) {Map<Character,Integer> map = new HashMap<Character,Integer>();char[] ch = str.toCharArray();for(int i = 0;i<ch.length;i++) {if(!map.containsKey(ch[i])){map.put(ch[i], 1);}else {map.put(ch[i], map.get(ch[i])+1);}}List<Map.Entry<Character,Integer>> list = new ArrayList<Map.Entry<Character,Integer>>(map.entrySet());Collections.sort(list, new Comparator<Map.Entry<Character, Integer>>(){@Overridepublic int compare(Entry<Character, Integer> o1,Entry<Character, Integer> o2) {return o1.getValue().compareTo(o2.getValue());}});String[] s = str.split(list.get(0).getKey().toString());StringBuffer sb = new StringBuffer();for(int i = 0;i<s.length;i++) {sb.append(s[i]);}return sb.toString();} }
?
14.?功能描述:找出一個(gè)int[]中滿足?2^n的數(shù)字,然后組成的新的數(shù)組
輸入:{4,3,8}
輸出:{4,8}
?
package com.xcbeyond;import java.util.ArrayList; import java.util.Arrays; import java.util.List;/*** * @author xcbeyond* @date 2015/05/11 14:04:43*/ public class NextString {public static void main(String[] args) {int[] arr = {4,3,8};System.out.println(Arrays.toString(nextString(arr)));}public static int[] nextString(int[] arr) {List<Integer> list = new ArrayList<Integer>();for(int i = 0;i<arr.length;i++) {int tmp = arr[i];while(tmp != 2) {if(tmp%2==0) {tmp = tmp/2;}else{break;}}if(tmp == 2) {list.add(arr[i]);}}int[] resultArr = new int[list.size()];for(int i = 0;i<list.size();i++) {resultArr[i] = list.get(i);}return resultArr;} }?
15.?
功能描述:共data1個(gè)人,圍成一圈,然后標(biāo)號(hào),從1-data1。
?????????????????然后從data2號(hào)開始從1報(bào)數(shù),報(bào)3的出列,求出列序列。
????????????????返回一個(gè)數(shù)組
如:
輸入:3,2
輸出:1,2,3
要求實(shí)現(xiàn)方法:
/**
?*?data1:人數(shù)
?*?data2?:?起始位置
?*
?*/
public?int[]?circleOut(int?data1,int?data2)
{
?????int?outNum?=?3;
????//TODO
????return?null;
}
16.?功能描述:統(tǒng)計(jì)一個(gè)數(shù)字轉(zhuǎn)為二進(jìn)制后,0和1的個(gè)數(shù),組成數(shù)組返回
輸入:6
輸出:{1,2}
?
package com.xcbeyond;import java.util.Arrays; import java.util.HashMap; import java.util.Map;/*** @author xcbeyond* @date 2015/05/11 14:32:46*/ public class IntParseBinary {public static void main(String[] args) {int data = 6;System.out.println(Arrays.toString(getNumber(data)));}public static int[] getNumber(int data) {char[] binaryStr = Integer.toBinaryString(data).toCharArray();Map<Character,Integer> map = new HashMap<Character,Integer>();for(int i = 0;i<binaryStr.length;i++) {if(!map.containsKey(binaryStr[i])) {map.put(binaryStr[i], 1);}else{map.put(binaryStr[i], map.get(binaryStr[i])+1);}}return new int[]{map.get('0'),map.get('1')};}}?
17.?功能描述:對(duì)一個(gè)二進(jìn)制數(shù)的每位進(jìn)行0和1反轉(zhuǎn),求翻轉(zhuǎn)后的二進(jìn)制所對(duì)應(yīng)的十進(jìn)制
輸入:1010
輸出:5
?
package com.xcbeyond;/*** * @author xcbeyond* @date 2015/05/11 15:01:03*/ public class BitReverse {public static void main(String[] args) {String data = "1010";System.out.println(getNumber(data));}public static String getNumber(String data){char[] dataStr = data.toCharArray();for(int i = 0;i<dataStr.length;i++) {if(dataStr[i] == '0') {dataStr[i] = '1';}else {dataStr[i] = '0';}}String str = "";for(int i = 0 ;i<dataStr.length;i++) {str += dataStr[i];}String res = Integer.valueOf(str, 2).toString();return res;}}?
18.?功能描述:判斷一個(gè)字符串中的"(?)"是否配對(duì)
輸入:if(a.equals(a))
輸出:true
?
package com.xcbeyond; /*** @author xcbeyond* @date 2015/05/11 15:50:39*/ public class IsMatch {public static void main(String[] args) {String str = "if(a.equals(a))";System.out.println(isMatch(str));}public static boolean isMatch(String str){boolean isMatch = false;char[] ch = str.toCharArray();int count = 0;for(int i = 0 ;i<ch.length;i++) {if(ch[i] == '(') {count++;}else if(ch[i] == ')') {count--;}}if(count == 0) {isMatch = true;}return isMatch;}}?
19.?功能描述:查找一個(gè)字符串的子字符串集
輸入:abab
輸出:a?b?ab?ba?aba?bab?
?
要求實(shí)現(xiàn)方法:
public?List<String>?getChildren(String?data)
{
????List<String>?list?=?new?ArrayList<String>();
????//TODO
????return?list;
}
20.?功能描述:數(shù)組的循環(huán)移位,
輸入:{a,b,c},2
輸出:{b,c,a}?
?
要求實(shí)現(xiàn)方法:
/**
?*data?:待循環(huán)數(shù)組
?*index:移動(dòng)位數(shù)
?*/
public?String[]?getChildren(String[]?data,int?index)
{
????//TODO
????return?null;
}
package com.xcbeyond;import java.util.Arrays;/*** @author xcbeyond* @date 2015/05/12 9:16:56*/ public class Demo20 {public static void main(String[] args) {String[] data = {"a","b","c"};System.out.println(Arrays.toString(getChildren(data,2)));}public static String[] getChildren(String[] data,int index){String[] resData = new String[data.length];for(int i = 0;i<resData.length-1;i++) {resData[i] = data[index-1+i];}resData[resData.length-1] = data[0];return resData;}}?
21.?程序?qū)崿F(xiàn)目標(biāo):?輸入一個(gè)字符,將字符轉(zhuǎn)換為小寫,將其對(duì)應(yīng)的ASCII值加5后,輸出結(jié)果。
程序要求:若其值加5后的字符值大于'z',將其轉(zhuǎn)換成從a開始的字符。
輸入:‘A’
輸出:‘f’
package com.xcbeyond; /*** * @author xcbeyond* @date 2015/05/12 9:31:45*/ public class Demo21 {public static void main(String[] args) {System.out.println(parseChar('X'));}public static char parseChar(char ch) {char resCh = 'a';resCh = (char)(Character.toLowerCase(ch) + 5);if(resCh > 'z') {resCh = (char)(resCh - 26);}return resCh;}}?
22.?要求:將一個(gè)二維數(shù)組進(jìn)行逆序,逆序后所有的元素行列不定,進(jìn)行隨機(jī)排列
①先把數(shù)組每一行逆序
②再把逆序后每一行進(jìn)行隨機(jī)排列
如:{{4,3,32,5},{1,2,3,4},{9,6,5,4}};
?4 6 5 9
3 4 2 1
5 4 32 3
?
23.?根據(jù)輸入m數(shù)據(jù),找出str的m個(gè)字符的所有字符串
例如"abc"?m=2
"ab"?"ac"?"bc"
"abcd"?m=3
"abc"?"acd"?"bcd"?"abd"
public?ArrayList<String>?perenum(String?str,int?m)
{
?
???return?null;
}
24.?分解質(zhì)因數(shù)
eg:輸入?28
輸出?2*2*7
25.n個(gè)長(zhǎng)度的字符串中取m個(gè)長(zhǎng)度的組合
26.?二維數(shù)組轉(zhuǎn)置
例:1?2?3
????4?5?6
轉(zhuǎn)置
????1?4
????2?5
?? 3?6
package com.xcbeyond; /*** @author xcbeyond* @date 2015/05/12 10:56:04*/ public class Demo26 {public static void main(String[] args) {int[][] arr = {{4,3,32,5},{1,2,3,4},{9,6,5,4}};int[][] arr2 = arrayReverse(arr);for(int i = 0;i<arr2.length;i++) {for(int j = 0;j<arr2[i].length;j++) {System.out.print(arr2[i][j]+" ");}System.out.println();}}public static int[][] arrayReverse(int[][] arr) {int[][] resArr = new int[arr[0].length][arr.length];for(int i = 0;i<resArr.length;i++) {for(int j = 0;j<resArr[i].length;j++) {resArr[i][j] = arr[j][i];}}return resArr;}}?
27.?功能描述:輸入字符串,將該字符串中數(shù)字放到非數(shù)字的后面,并保持原有順序不變。
例如:h3a2p0p1y----------happy3201
public?String??childStr(String?inputStr){
}
package com.xcbeyond; /*** * @author xcbeyond* @date 2015/05/12 11:02:27*/ public class Demo27 {public static void main(String[] args) {String str = "h3a2p0p1y";System.out.println(childStr(str));}public static String childStr(String inputStr){String numStr = "";String str = "";String numRegex = "[0-9]";String strRegex = "[a-zA-Z]";for(int i = 0;i<inputStr.length();i++) {if((inputStr.charAt(i)+"").matches(numRegex)) {numStr += inputStr.charAt(i);}else if((inputStr.charAt(i)+"").matches(strRegex)) {str += inputStr.charAt(i);}}return str+numStr;}}?
28.?輸入一個(gè)身份證號(hào)碼(15位和18位)和一個(gè)年份,計(jì)算現(xiàn)在的年齡(忽略非法參數(shù))
eg:610618199001020065??2011
輸出:21
package com.xcbeyond; /*** * @author xcbeyond* @date 2015/05/12 11:14:56*/ public class Demo28 {public static void main(String[] args) {String id = "610618199001020065";System.out.println(countAge(id,2011));}public static int countAge(String ID,int date) {String birthDate = "";if(ID.length() == 15) {birthDate = ID.substring(3, 7);}else if(ID.length() == 18) {birthDate = ID.substring(6, 10);}int age = 0;age = date - Integer.parseInt(birthDate);return age;}}29.?輸入一個(gè)字符串,如果是小寫則轉(zhuǎn)換成相應(yīng)的大寫字母的后五位,如果是VWXYZ則轉(zhuǎn)換成abcde,其他的都不變,例如:“aDsR154+-/.”則應(yīng)該輸出為“FDXR154+-/.”
package com.xcbeyond; /*** * @author xcbeyond* @date 2015/05/12 13:39:20*/ public class Demo29 {public static void main(String[] args) {String str = "aDsR154+-/.";System.out.println(parseStr(str));}public static String parseStr(String str) {StringBuffer sb = new StringBuffer();char tmp;for(int i = 0;i<str.length();i++) {if(str.charAt(i)>='a' && str.charAt(i)<='z') {tmp =(char)(Character.toUpperCase(str.charAt(i))+5);if(tmp > 'Z') {tmp = (char)(tmp - 26);}sb.append(tmp);}else {sb.append(str.charAt(i));}}return sb.toString();}}?
30.?字母轉(zhuǎn)換(完成給出類中的方法):
要求:
?1、傳入大寫字母,返回小寫字母。
?2、返回的小寫字母應(yīng)為該大寫字母對(duì)應(yīng)的小寫字母后第五個(gè)小寫字母,
??例:出入'A',則返回f.
?3、若按2中的要求返回的字母超過z,則超過1返回a,超過2返回b,依次類推;
public?class?test{
??public?static?void?main(String[]?args)
?{
???//可寫測(cè)試代碼??
?}
???//需要完成的方法
??public?char?upperToLower(char?upperCase)
??{
?????//完成代碼
??}
}
package com.xcbeyond; /*** * @author xcbeyond* @date 2015/05/12 14:05:49*/ public class Demo30 {public static void main(String[] args) {char ch = 'A';System.out.println(upperToLower(ch));}public static char upperToLower(char upperCase) {char resCh = 'a';resCh = (char)(Character.toLowerCase(upperCase) + 5);if(resCh > 'z') {resCh = (char)(resCh - 26);}return resCh;} }?
31.?刪除一個(gè)字符串里出現(xiàn)次數(shù)最多的子字符串
如果有多個(gè)出現(xiàn)次數(shù)相同的并且出現(xiàn)次數(shù)最多則將多個(gè)全部刪除比如abbccd得到結(jié)果?ad
32.?判斷字符串首字母就大寫,非首字母小寫
1、如輸入?Good?返回?TRUE
2、過程中不需要輸出任何IO流。
33.?將一個(gè)英文語(yǔ)句以單詞為單位逆序排放。例如“I?am?a?boy”,逆序排放后為“boy?a?am?I”
所有單詞之間用一個(gè)空格隔開,語(yǔ)句中除了英文字母外,不再包含其他字符
接口說明
/**
?*?反轉(zhuǎn)句子
?*?
?*?@param?sentence?原句子
?*?@return?反轉(zhuǎn)后的句子
?*/
public?String?reverse(String?sentence);
package com.xcbeyond; /*** * @author xcbeyond* @date 2015/05/12 14:23:12*/ public class Demo33 {public static void main(String[] args) {String str = "I am a boy";System.out.println(reverse(str));}public static String reverse(String sentence) {String regex = "[ *]";String[] ch = sentence.split(regex);StringBuffer sb = new StringBuffer();for(int i=ch.length-1;i>=0;i--) {sb.append(ch[i]+" ");}return sb.toString();}}?
34.?題目背景
寫出一個(gè)程序,接受一個(gè)浮點(diǎn)數(shù)值,輸出該數(shù)值的近似整數(shù)值。如果小數(shù)點(diǎn)后數(shù)值大于等于5,向上取整;小于5,則向下取整
接口
int?round(double?d)
舉例
-4.5?四舍五入的結(jié)果是-4
4.4?四舍五入的結(jié)果是4
package com.xcbeyond; /*** * @author xcbeyond* @date 2015/05/12 14:32:50*/ public class Demo34 {public static void main(String[] args) {double d = 3.65;System.out.println(round(d));}public static int round(double d) {String str = Double.toString(d);String subStr = str.substring(str.indexOf('.')+1, str.indexOf('.')+2);int a = Integer.parseInt(subStr);int res = 0;if(a <5) {res = (int)Math.floor(d);}else {res = (int)Math.ceil(d);}return res;}}?
35.數(shù)列求和
編寫程序,輸入一個(gè)正整數(shù)n,求下列算式的值。要求定義和調(diào)用函數(shù)fact(k)計(jì)算k的階乘,函數(shù)返回值的類型是double。
1+1/2!+?....?+1/n!
輸出保留5位小數(shù)。
下面是一些合理的表達(dá)式的例子:
Input?????????5????????????????
Output??????1.71667???
package com.xcbeyond;public class Demo35 {public static void main(String[] args) {System.out.println(resutl(5));}public static double resutl(int n) {double res = 0.0;int i = 1;while(i<=n) {res += (double)1.0/fack(i);i++;}return res;}public static int fack(int k) {int result = 0;if(k == 1) {result = 1;}else {result = fack(k-1)*k;}return result;}}?
36.?計(jì)算整數(shù)各個(gè)數(shù)位之和?
描述:?要求使用遞歸實(shí)現(xiàn),計(jì)算整數(shù)各個(gè)數(shù)位之和。
舉例:?123?-->?1+2+3?=?6
運(yùn)行時(shí)間限制:?無限制?
內(nèi)存限制:?無限制?
輸入:?0xff?ff?ff?ff以內(nèi)的整數(shù)
輸出:?NA
樣例輸入:?123?
樣例輸出:?6?
package com.xcbeyond; /*** * @author xcbeyond* @date 2015/05/12 15:23:16*/ public class Demo36 {public static void main(String[] args) {int num = 123;System.out.println(bitSum(num));}public static int bitSum(int num) {int res = 0;if(num<10) {res = num;}else {res = num%10 + bitSum(num/10);}return res;} }37.提取不重復(fù)的整數(shù)?
描述:?輸入一個(gè)int型32位整數(shù),按照從右向左的閱讀順序,返回一個(gè)不含重復(fù)數(shù)字的新的整數(shù)。
運(yùn)行時(shí)間限制:?10?Sec?
內(nèi)存限制:?無限制?
輸入:?整數(shù),如9876673
注意:
1、整數(shù)最后的0,請(qǐng)忽略,例如:輸入1750,輸出:571
2、負(fù)數(shù),保留'-'在前面,例如:輸入-175,輸出:-571
輸出:?整數(shù),如37689
樣例輸入:?9876673?
樣例輸出:?37689??
package com.xcbeyond; /*** * @author xcbeyond* @date 2015/05/12 15:50:34*/ public class Demo37 {public static void main(String[] args) {int num = -12310;System.out.println(getConvertInt(num));}public static int getConvertInt(int num) {String str = String.valueOf(num);StringBuffer sb = new StringBuffer();boolean flg = true;if(str.charAt(0) == '-') {flg = false;sb.append(str.charAt(0));}if(str.charAt(str.length()-1) != '0') {sb.append(str.charAt(str.length()-1));}for(int i = str.length()-2;i>0;i--) {sb.append(str.charAt(i));}if(flg) {sb.append(str.charAt(0));}return Integer.parseInt(sb.toString());} }歡迎微信掃碼下面二維碼,關(guān)注微信公眾號(hào)【程序猿技術(shù)大咖】,進(jìn)行更多交流學(xué)習(xí)!
總結(jié)
- 上一篇: excel 分类计数
- 下一篇: java美元兑换,(Java实现) 美元