1.功能描述:數組的循環移位,
輸入:{a,b,c},2
輸出:{b,c,a}
- public static void main(String[] args) {
- String[] sArr = getChildren(new String[] { "a", "b", "c", "A", "B", "C", "D", "E" }, 5);
- for (String s : sArr) {
- System.out.println(s);
- }
- }
- public static String[] getChildren(String[] data, int index) {
- for (int i = 0; i < index; i++) {
- int j = data.length - 1;
- String loay = data[j];
- for (j = data.length - 1; j > 0; j--) {
- data[j] = data[j - 1];
- }
- data[0] = loay;
- }
- return data;
- }
2.輸入一個字符,將字符轉換爲小寫,將其對應的ASCII值加5後,輸出結果。
程序要求:若其值加5後的字符值大於'z',將其轉換成從a開始的字符。
輸入:‘A’
輸出:‘f’
- public static void main(String[] args) {
- String loay = "z";
- int c = loay.charAt(0);
- int num = c + 5;
- if (num > 'Z') {
- int a = 'a';
- int z = 'z';
- System.out.println((char) Character.toLowerCase(num + a - z - 1));
- } else {
- System.out.println((char) Character.toLowerCase(num));
- }
- }
3. 功能描述:查找一個字符串的子字符串集
輸入:abab
輸出:a b ab ba aba bab
- public static void main(String[] args) {
- System.out.println(getChildren("ababc"));
- }
- public static List<String> getChildren(String data) {
- Set<String> set = new TreeSet<String>();
- for (int i = 1; i < data.length(); i++) {
- for (int j = 0; j < data.length(); j++) {
- if (j + i <= data.length()) {
- set.add(data.substring(j, j + i));
- }
- }
- }
- List<String> list = new ArrayList<String>();
- list.addAll(set);
- return list;
- }
4.功能描述:判斷一個字符串中的"( )"是否配對
輸入:if(a.equals(a))
輸出:true
- public static void main(String[] args) {
- Boolean bool = isBool("if()(a.equals(a)))");
- System.out.println(bool);
- }
- public static Boolean isBool(String data) {
- String[] split =data.split("");
- List<String> l = new ArrayList<String>();
- for (int i = 0; i < split.length; i++) {
- l.add(split[i]);
- }
- for (int i = 0; i < l.size(); i++) {
- if (l.get(i).equals("(") || l.get(i).equals(")")) {
- } else {
- l.remove(i);
- i--;
- }
- }
- String k = l.get(0);
- for (int i = 0; i < l.size(); i++) {
- if (k.equals("(") && l.get(i).equals(")")) {
- l.remove(i);
- l.remove(0);
- i = 0;
- }
- }
- if (l.size() == 0) {
- return true;
- }
- return false;
- }
5.刪除一個字符串裏出現次數最多的子字符串,如果有多個出現次數相同的並且出現次數最多則將多個全部刪除
比如abbccd
得到結果 ad
- public static void main(String[] args) {
- Map<String, Integer> m = new HashMap<>();
- loay("abcceedwe", m);
- }
- public static String loay(String coay, Map<String, Integer> m) {
- String[] apl = coay.split("");
- List<String> l = new ArrayList<>();
- for (int i = 0; i < apl.length; i++) {
- l.add(apl[i]);
- if (m.get(apl[i]) == null) {
- m.put(apl[i], 0);
- }
- if (m.get(apl[i]) != null) {
- m.put(apl[i], (m.get(apl[i]) + 1));
- }
- }
- Integer is = Integer.MIN_VALUE;
- StringBuilder sb = new StringBuilder();
- for (Map.Entry<String, Integer> it : m.entrySet()) {
- if (it.getValue() > is) {
- is = it.getValue();
- }
- }
- for (Map.Entry<String, Integer> it : m.entrySet()) {
- if (it.getValue().equals(is)) {
- sb.append(it.getKey());
- }
- }
- java.lang.String[] a = sb.toString().split("");
- for (int i = 0; i < a.length; i++) {
- System.out.println(a[i]);
- for (int j = l.size() - 1; j > 0; j--) {
- if (a[i].equals(l.get(j))) {
- l.remove(j);
- }
- }
- }
- System.out.println(l);
- return l.toString();
- }
6.手動輸入一個存儲整數的數組,要求輸出數組裏面的2個最大值
- public static void main(String[] args) {
- int len = 4;
- int[] ary = new int[len];
- Scanner sc = new Scanner(System.in);
- for (int i = 0; i < ary.length; i++) {
- System.out.print("請輸入數組第"+(i+1)+"個整數:");
- ary[i] = sc.nextInt();
- }
- System.out.println("控制檯寫入的值" + Arrays.toString(ary));
- for (int j = 0; j < ary.length - 1; j++) {
- for (int k = j + 1; k > 0; k--) {
- if (ary[k] > ary[k - 1]) {
- int temp = ary[k - 1];
- ary[k - 1] = ary[k];
- ary[k] = temp;
- }
- }
- }
- System.out.println("兩個最大值爲" + ary[0] + "*" + ary[1]);
- }