二、JavaSE-编程思维

  1. 编程题:求x-y之间所有基数的和

  • 使⽤while 编写函数int sum(int x int y),返回从x到y其中所有的奇数值之和

public class SumDemo {
    public static int sum(int x,int y) {
        int i = x;
        int sum = 0;
        while( i <= y ) {
            if( i % 2 != 0) {
                sum += i;
            }
            i++;
        }
        return sum;
    }
    public static void main(String[] args) {
        int sum = SumDemo.sum(1, 10);
        System.out.println("sum = " + sum);
    }
}
  1. 编程题:对数组元素进行反转

  • 实现对⼀个数组元素反转的⽅法

public class Gnanx { public static void reverseArr(int[] arr) { int temp = 0; for (int i = 0; i < arr.length / 2; i++) { temp = arr[i]; arr[i] = arr[arr.length - 1 - i]; arr[arr.length - 1 - i] = temp; } } }

  1. 编程题:从⼩到⼤输出

  • 需求:写⼀个⽅法(函数)实现以下功能:输⼊三个整数x,y,z,请把这三个数由⼩到⼤输出。

public class Gnanx {
    public void printNum(int x,int y,int z) {
        int[] arr = { x,y,x };
        Arrays.sort(arr);
        for (int item : arr) {
            System.out.println(item);
        }
    }
}

提示:以上只是利⽤数组存储元素,对数组进⾏排序的思路,其他思考只要能完成题⽬即可。

  1. 编程题:⽣成⼀个随机字符串数组

  • 实现⼀个方法,能够生成⼀个随机字符串数组。这些字符串必须是不⼀样的,每个字符串由字⺟和数字组成。方法输⼊参数有两个:

  • Count:字符串数目

  • Str_length: 字符串长

package com.atguigu.springcloud.controller;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;

/**
 * @Author Gnanx
 * @Date 2023/3/1 23:12
 * @Version 1.0
 */
public class Gnanx {
    // 每个字符串由字⺟和数字组成,将字⺟和数字存⼊⼀个数组
    public static List<Character> charAll() {
        List<Character> a = new ArrayList<>();
        for (char i = 'a'; i <= 'z'; i++) {
            a.add(i);
        }
        for (char i = 'A'; i <= 'Z'; i++) {
            a.add(i);
        }
        for (char i = '0'; i <= '9'; i++) {
            a.add(i);
        }
        return a;
    }

    public static List<String> randomStr(int Count, int Str_length) {
        List<String> list = new ArrayList<String>();
        //字⺟和数字组成
        List<Character> a = Gnanx.charAll();
        // set
        HashSet s1 = new HashSet(); // ⽤于存⼀个字符串
        HashSet s2 = new HashSet(); // ⽤于存多个字符串
        // 随机获得元素
        while (true) {
            //在a.size()中获取随机数
            int a1 = (int) (Math.random() * a.size());
            //获取到的字符或者数字,存到数组中
            s1.add(a.get(a1));
            //Str_length字符申⻓度够了就⽣成字符串,存到s2数组⾥⾯
            if (s1.size() == Str_length) {
                //⽣成字符串
                StringBuilder sb = new StringBuilder();
                for (Object o : s1) {
                    sb.append(o.toString());
                }
                //字符串存到s2数组⾥⾯
                s2.add(sb);
                // 清空
                s1.clear();
            }
            if (s2.size() == Count) {
                break;
            }
        }
        for (Object str : s2) {
            list.add(str.toString());
        }
        return list;
    }

    public static void main(String[] args) {
        List<String> list = Gnanx.randomStr(5, 10);
        for (String item : list) {
            System.out.println(item);
        }
    }
}
  1. 编程题:对给定的字符串去重

  • 实现⼀个⽅法,给定⼀个输⼊字符串,能够删除所有连续同样字⺟(⼤⼩写不敏感)。例如,输⼊为ABBCCCCCBBAB,输出就是ABCBAB,⼜如,输⼊为aAC,输出则是aC

package com.atguigu.springcloud.controller;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;

/**
 * @Author Gnanx
 * @Date 2023/3/1 23:12
 * @Version 1.0
 */
public class Gnanx {
    public static String deleteRepeat(String str) {
        // 将所有元素转换为⼤写(⼤⼩写不敏感)
        String s = str.toUpperCase();
        StringBuilder sb = new StringBuilder();
        List<Integer> list = new ArrayList<Integer>();
        for (int i = 0; i < s.length(); i++) {
            //第⼀个元素是必定输出的,不⽤删除的
            if (i == 0) {
                list.add(0);
            } else {
                //根据前后元素⽐较,如果相同,则跳过,不同,则记录索引
                if (s.charAt(i) != s.charAt(i - 1)) {
                    list.add(i);
                }
            }
        }
        for (Integer n : list) {
            //将记录的索引对应原李符串添加到stringBuilder中,形成新的⼦
            sb.append(str.charAt(n));
        }
        return sb.toString();
    }
    public static void main(String[] args) {
        String str = Gnanx.deleteRepeat("aAC");
        System.out.println("str = " + str);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值