一个字符串数组{“abc”,”de”,”gong”,”De”,”abc”,”Foo”,”gong”}, 请将其中重复的元素去除掉,并排序后输出。(提示:使用HashSet去重)
时间: 2024-03-27 18:39:22 浏览: 13
好的,我来解答你的问题。
你可以使用HashSet来去重,然后将结果转换为数组并进行排序。具体实现如下:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
String[] arr = {"abc", "de", "gong", "De", "abc", "Foo", "gong"};
Set<String> set = new HashSet<>(Arrays.asList(arr)); // 使用HashSet去重
String[] resultArr = set.toArray(new String[set.size()]); // 转换为数组
Arrays.sort(resultArr); // 排序
System.out.println(Arrays.toString(resultArr)); // 输出结果
}
}
```
输出结果为:
```
[De, Foo, abc, de, gong]
```
需要注意的是,这里区分大小写,因此大小写不同的元素也会被保留。如果不区分大小写,可以将所有元素转换为小写或大写再进行去重和排序。
相关问题
java怎么能够检查一个字符串是否处于一个字符串数组里,junit测试
可以使用Java语言提供的Arrays类中的asList()方法将字符串数组转换为列表,然后使用contains()方法检查字符串是否在该列表中。例如:
```java
import java.util.Arrays;
public class StringChecker {
public static boolean checkStringInArray(String str, String[] strArray) {
return Arrays.asList(strArray).contains(str);
}
}
```
然后可以使用JUnit测试来测试该方法的正确性:
```java
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class StringCheckerTest {
@Test
void checkStringInArrayTest() {
String[] strArray = {"foo", "bar", "baz"};
assertTrue(StringChecker.checkStringInArray("foo", strArray));
assertTrue(StringChecker.checkStringInArray("bar", strArray));
assertTrue(StringChecker.checkStringInArray("baz", strArray));
assertFalse(StringChecker.checkStringInArray("qux", strArray));
}
}
```
在这个例子中,我们创建一个StringChecker类来实现检查字符串是否在数组中的方法checkStringInArray()。然后我们使用JUnit的测试框架来测试这个方法,检查对于给定的输入字符串和字符串数组,是否能正确地返回预期结果。
c语言单个字符串数组查找字符串
可以使用strcmp函数来对单个字符串数组进行查找。
例如,假设我们有一个字符串数组str_array,包含了多个字符串,我们想要查找其中的某个字符串target_str,可以使用以下代码:
```
#include <stdio.h>
#include <string.h>
int main() {
char str_array[10][20] = {"hello", "world", "foo", "bar", "apple", "banana", "cat", "dog", "sun", "moon"};
char target_str[20] = "banana";
int i, found = 0;
for (i = 0; i < 10; i++) {
if (strcmp(str_array[i], target_str) == 0) {
found = 1;
break;
}
}
if (found) {
printf("The target string \"%s\" is found at index %d.\n", target_str, i);
} else {
printf("The target string \"%s\" is not found in the array.\n", target_str);
}
return 0;
}
```
以上代码中,我们使用了一个双重循环来遍历字符串数组中的每个字符串,并使用strcmp函数逐个比较字符串,查找目标字符串。如果找到了目标字符串,我们设置found标记为1,并使用break语句跳出循环。最后,我们根据found标记的值输出查找结果。