写下面代码的题解import java.util.Scanner; public class InsertMax { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); // 读取输入的字符串 char maxChar = ' '; // 用于存储最大字母 for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (c > maxChar) { maxChar = c; // 更新最大字母 } } StringBuilder stringBuilder = new StringBuilder(str); // 将字符串转换为StringBuilder类型 for (int i = 0; i < stringBuilder.length(); i++) { char c = stringBuilder.charAt(i); if (c == maxChar) { stringBuilder.insert(i + 1, "(max)"); // 在最大字母后面插入“(max)”,用insert(int offset, 任意类型) 在某个index后插入字符串。 i += 5; // 更新i的值,避免重复插入 } } System.out.println(stringBuilder.toString()); // 输出结果 } }
时间: 2024-02-14 07:23:45 浏览: 26
这段代码的功能是读取用户输入的字符串,找到字符串中最大的字母,并在其后面插入“(max)”字符串,最后输出结果。
在main方法中,首先创建了一个Scanner对象,用于读取用户输入的字符串。然后使用nextLine()方法读取用户输入的字符串,并将其存储在str变量中。
接下来,定义一个char类型的变量maxChar,用于存储最大的字母。使用一个for循环遍历字符串中的每一个字符,将其与maxChar进行比较,如果比maxChar大,则更新maxChar的值。
接下来,将字符串str转换为StringBuilder类型,并使用for循环遍历字符串中的每一个字符。如果字符等于maxChar,则在其后面插入“(max)”字符串,使用insert(int offset, 任意类型)方法实现。由于插入了5个字符,因此需要将i的值加上5,避免重复插入。
最后,使用toString()方法将StringBuilder类型转换为String类型,并输出结果。
相关问题
P5707 【深基2.例12】上学迟到 题解和分析java
这是一道简单的模拟题,主要思路是根据给定的时间和路程计算出到达学校的时间,然后和规定的时间进行比较。
下面是Java代码的参考实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int h = sc.nextInt(); // 当前小时
int m = sc.nextInt(); // 当前分钟
int t = sc.nextInt(); // 路程时间,单位为分钟
int arriveH = h, arriveM = m + t; // 到达时间
if (arriveM >= 60) { // 处理分钟进位
arriveM -= 60;
arriveH++;
}
if (arriveH >= 24) { // 处理小时进位
arriveH -= 24;
}
if (arriveH < 8 || (arriveH == 8 && arriveM <= 0)) { // 比较到达时间和规定时间
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
```
首先读入当前时间和路程时间,然后计算出到达时间。注意到达时间可能跨越小时和分钟,需要特殊处理。最后将到达时间与规定时间比较,输出结果即可。
注意,此处的代码并没有使用任何第三方库,可以直接在洛谷上提交通过。
写下面代码的题解public class InsertionSort { public static int[] sort(int[] arr) { int len = arr.length; int preIndex, current; for (int i = 1; i < len; i++) { preIndex = i - 1; current = arr[i]; while (preIndex >= 0 && arr[preIndex] > current) { arr[preIndex + 1] = arr[preIndex]; preIndex--; } arr[preIndex + 1] = current; System.out.println("Element " + current + " is inserted at index " + (preIndex + 1)); } return arr; } public static void main(String[] args) { int[] arr = {5, 3, 8, 6, 4}; int[] sortedArr = sort(arr); } }
这是一个插入排序算法的实现。插入排序的思路是将一个待排序的数列,依次将每个数插入到已经排好序的数列中的适当位置,直到全部插入完成。具体实现中,从第二个元素开始,将该元素与前面的元素进行比较,如果前面的元素比它大,就将它往后移动一位,直到找到合适的位置插入该元素。
在这段代码中,sort方法接收一个整型数组作为参数,返回一个排好序的整型数组。它使用了一个for循环来遍历整个数组,从第二个元素开始,使用一个while循环将该元素插入到前面已经排好序的子数组中的适当位置。在while循环中,preIndex表示已经排好序的子数组中的最后一个元素的下标,current表示当前待排序的元素的值。while循环中,如果当前待排序的元素比已经排好序的子数组中的某个元素小,就将该元素往后移动一位,直到找到合适的位置插入该元素。在插入完成之后,将该元素插入到数组中,并输出插入的位置。
在main方法中,创建了一个整型数组arr,调用sort方法将该数组排好序,并将排好序的数组返回到sortedArr中。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)