编程题:求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);
}
}
编程题:对数组元素进行反转
实现对⼀个数组元素反转的⽅法
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; } } }
编程题:从⼩到⼤输出
需求:写⼀个⽅法(函数)实现以下功能:输⼊三个整数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);
}
}
}
提示:以上只是利⽤数组存储元素,对数组进⾏排序的思路,其他思考只要能完成题⽬即可。
编程题:⽣成⼀个随机字符串数组
实现⼀个方法,能够生成⼀个随机字符串数组。这些字符串必须是不⼀样的,每个字符串由字⺟和数字组成。方法输⼊参数有两个:
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);
}
}
}
编程题:对给定的字符串去重
实现⼀个⽅法,给定⼀个输⼊字符串,能够删除所有连续同样字⺟(⼤⼩写不敏感)。例如,输⼊为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);
}
}