用Java写程序,给定[" a "," b "," a "," b "," c "," a "," b "," c "," b "]字符串数组,然后使用 Map 的 key 来保存数组中字符串元素, value 保存该字符串元素的出现次数,最后统计出各字符串元素的出现次数。
时间: 2023-11-13 20:04:10 浏览: 127
可以使用Java中的Map来保存字符串元素和它们的出现次数。具体实现步骤如下:
1. 创建一个空的Map对象,用于保存字符串元素和它们的出现次数。
2. 遍历给定的字符串数组,对于数组中的每个字符串元素,判断它是否已经在Map中存在,如果存在,则将该字符串元素的出现次数加1,否则将该字符串元素作为新的key添加到Map中,并将它的出现次数初始化为1。
3. 遍历Map中的所有key,输出每个key和它对应的value,即该字符串元素的出现次数。
下面是Java代码实现:
```
String[] arr = {"a", "b", "a", "b", "c", "a", "b", "c", "b"};
Map<String, Integer> map = new HashMap<>();
for (String s : arr) {
if (map.containsKey(s)) {
map.put(s, map.get(s) + 1);
} else {
map.put(s, 1);
}
}
for (String key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
```
相关问题
java输入一个包括四个小数的字符串,数之间用分号隔开,格式为a;b;c;d 并计算sina乘以cosb乘以根号c的d次方。最后返回与结果最接近的整数并按照格式输出计算时间
在Java中,你可以通过以下步骤来实现这个功能:
1. **输入处理**:
首先,创建一个`Scanner`对象来读取用户的输入。然后使用`split()`方法将字符串按分号分割成一个数组,数组中的每个元素代表一个小数。
```java
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
String[] numbers = input.split(";");
double a = Double.parseDouble(numbers[0]);
double b = Double.parseDouble(numbers[1]);
double c = Double.parseDouble(numbers[2]);
double d = Double.parseDouble(numbers[3]);
```
2. **数学计算**:
使用Math库进行三角函数和幂运算,计算`sina * cosb * Math.pow(Math.sqrt(c), d)`。
```java
double result = Math.sin(a) * Math.cos(b) * Math.pow(Math.sqrt(c), d);
```
3. **四舍五入到最近的整数**:
使用`Math.round()`函数对结果进行四舍五入,得到最接近的整数。
```java
int roundedResult = (int) Math.round(result);
```
4. **计算时间**:
记录当前时间点作为开始,然后再次获取当前时间点结束计算,计算两个时间差以获得运行时间。Java 8及以上版本可以使用`System.nanoTime()`。
```java
long startTime = System.nanoTime();
// ... 执行所有计算操作 ...
long endTime = System.nanoTime();
long elapsedTime = endTime - startTime;
```
5. **格式化输出**:
格式化时间和结果,并按照给定的格式输出。
```java
long timeInMilliseconds = TimeUnit.NANOSECONDS.toMillis(elapsedTime);
String formattedTime = String.format("%d ms", timeInMilliseconds);
System.out.printf("计算结果: %d, 计算时间: %s%n", roundedResult, formattedTime);
```
6. **关闭资源**:
最后别忘了关闭`Scanner`对象。
```java
scanner.close();
```
现在,你需要在控制台输入类似 "1.2;2.3;3.4;5.6" 的格式,程序会计算并输出结果及运行时间。如果需要完整的代码示例,请告诉我,我可以提供一个完整的Java代码片段供参考。
ptaA-BJava
题目描述:给定两个字符串A和B,要求计算A-B,即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A-B。本题要求使用Java语言编写程序。
代码实现:可以使用字符数组和布尔数组来实现。首先将字符串B中的字符存入布尔数组中,然后遍历字符串A,如果字符不在布尔数组中,则输出该字符。
参考代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[] a = br.readLine().toCharArray();
char[] b = br.readLine().toCharArray();
boolean[] bool = new boolean[128];
for(char i : b) {
bool[i] = true;
}
for(char c : a) {
if(!bool[c]) {
System.out.print(c);
}
}
}
}
```
相关问题:
阅读全文