4.把如下元素存入List集合"aaa""bbb" "aaa" "abc""xyz”""123""xyz”去掉重复元素
时间: 2023-04-04 20:01:40 浏览: 160
可以使用Java中的HashSet来去除重复元素,代码如下:
List<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("aaa");
list.add("abc");
list.add("xyz");
list.add("123");
list.add("xyz");
Set<String> set = new HashSet<>(list);
list.clear();
list.addAll(set);
System.out.println(list); // 输出 [aaa, abc, xyz, 123, bbb]
相关问题
函数Encryption (char *s)的功能是先把字符串中的内容逆置。然后判断是否为小写母,如果是则向下移3位(如:abcxyz变为defabc) 例如:字符串中原有的字符串为:abcxyz123ABC,则调用该函数后, 串中的内容为:CBA321cbafed。 程序中有二行语句中存在错误,请改正。 1 #include <ctype.h> 2 #include <stdio.h> 3 #include <string.h> 4 #define N 81 5 void Encryption( char str[] ); //字符串中的内容逆置后移位 6 int main(){ 7 char str[N]; 8 gets(str); 9 Encryption (str); 10 puts(str); 11 return 0; 12 } 13 void Encryption( char str[] ){ 14 int i, j, temp; 15 for(i=0, j=strlen(str); i<j; i++ , j--) { 16 temp=str[i]; str[i]=str[j]; str[j]=temp; 17 } 18 i=0; 19 while(str[i]!='\0') { 20 if(islower(str[i])) //判断是否为小写字母 21 str[i]=str[i]+3; 22 i++; 23 } 24 }
以下是修正后的程序代码:
```
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#define N 81
void Encryption(char str[]);
int main() {
char str[N];
gets(str);
Encryption(str);
puts(str);
return 0;
}
void Encryption(char str[]) {
int i, j, temp;
for (i = 0, j = strlen(str) - 1; i < j; i++, j--) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
i = 0;
while (str[i] != '\0') {
if (islower(str[i])) { //判断是否为小写字母,注意大括号的位置
str[i] = (str[i] - 'a' + 3) % 26 + 'a'; //移位操作
}
i++;
}
}
```
需要注意的地方:
1. 第15行中的`j=strlen(str)`应该改为`j=strlen(str)-1`,否则会将字符串最后一个字符与`\0`交换位置,导致输出错误。
2. 第20行的`if(islower(str[i]))`后面应该加上大括号,否则只会将后面的`i++`语句视为if的一部分。
3. 第21行的移位操作需要特别注意,需要先将字符转换为数字再进行移位操作,最后再将数字转换回字符。移位操作的公式为`(str[i] - 'a' + 3) % 26 + 'a'`,其中`'a'`是字符'a'的ASCII码值。
编一个程序,输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。 #include<stdio.h> #include<string.h> int main() { char str[100]; char *p; p=&str; scanf("%s",&str); while(*p!='\0') { /******************************* 请在该部分补充缺少的代码 ********************************/ } return 0; } 输入 一个字符串,长度不超过80个字符。 输出 删掉非英文字母后的字符串。 输入输出样例 样例输入 #1 abc123+xyz.5 样例输出 #1 abcxyz
好的,这是一个删除字符串中非英文字母的程序,下面是补充完整的代码:
```
#include <stdio.h>
#include <string.h>
#include <ctype.h> // 头文件ctype.h中包含了isalpha函数
int main()
{
char str[100];
char *p;
p = str;
scanf("%s", &str);
while (*p != '\0')
{
if (isalpha(*p)) // 判断*p是否为英文字母
{
printf("%c", *p); // 输出*p
}
p++; // 指针p向后移动一个字符
}
return 0;
}
```
程序中使用了C标准库中的ctype.h头文件中的isalpha函数,该函数用于判断一个字符是否为英文字母。如果是英文字母就输出,否则就跳过不输出。
阅读全文