编程:字符串中删去所有重复的字符,每种字符只保留一个。(用java语言编写)

作者&投稿:宗政霍 (若有异议请与网页底部的电邮联系)
java中编程,只要含有相同的字符串,不论顺序如何,都认为是一致的~

static Scanner input = new Scanner(System.in);

public static void main(String[] args) {
match();
}

static public void match() {
String msg1;
String msg2;
String msg3,msg4;
char temp;

System.out.println("请输入字符串1");
msg1 = input.next();
System.out.println("请输入字符串2");
msg2 = input.next();

char[] ch1 = msg1.toCharArray();
char[] ch2 = msg1.toCharArray();

Arrays.sort(ch1);
Arrays.sort(ch2);

if (msg1.length() == msg2.length()) {
msg3 = String.valueOf(ch1);
msg4 = String.valueOf(ch2);
if (msg3.equals(msg4)) {
System.out.println("这两个字符串匹配");
}else{
System.out.println("这两个字符串不匹配");
}
}else{
System.out.println("长度不相同");
}
}

不给分 没人会给你写代码!!!
具体就是将两个字符串弄个嵌套的for循环,相同的数字拿出来就行

           for(int j=sb.length() - 1; j > i; j--) {
                if(sb.charAt(i)==sb.charAt(j)) {
                    sb.deleteCharAt(j);
                    System.out.println("整理后的字符串为:"+sb);
                }
            }

把里面的for循环改成这样就可以了。因为你每次执行完delete之后,当前的length已经变了,下次循环就会少遍历后面的一个字符。所以会出现这种情况



 public static void main(String[] args) {

  String str = "aabsdd";

  String tempStr = "";

  for(int i=0,len=str.length();i<len;i++){

   String temp = str.substring(i, i+1);

   if(tempStr.indexOf(temp)==-1){

    tempStr = tempStr + temp;

   }

  }

  System.out.println(tempStr);

 }

sb.deleteCharAt(j);执行这句的时候sb的长度已经变了



j的控制有问题,当删除一个字符后,j应该还在原位,
如上面删除连续2个1时,删除第一个1时,第二个1就占了第一个1的位置,此时j不能自增
可改为while循环
j=i+1;
while (j<sb.length())
{
if(sb.charAt(i)==sb.charAt(j))
{
sb.deleteCharAt(j);

}
else
{
j++;
}
}

因为sb.deleteCharAt(j)之后,sb的length在就会减1,同时所有数据的下标相当于前移了,所以会跳过

其实有个BT些的写法,就是利用set的唯一性
Set set = new Set();
set.add(sb.charAt(i));

然后把set在组装成string就行了


编写一个程序,将字符串s中的所有字符c删除。
1. 几乎所有头函数需要# include因为项目包括输出和输入字符串和字符,h . # include <字符串>。2.第二种方法是定义变量的性格[100]存储相同大小的两个字符串。(1)整数变量intc;Inti=0,j=0;代表一个字符串。b[100]表示删除对应字符的字符串,整数C表示要删回除的位。JI是for循环中要用到的...

c语言编写删除字符串中所有字母的程序。
\/\/程序功能:编写一个函数delchar(s,c),该函数将字符串s中出现的所有c字符删除。\/\/ 在主程序中输入一个字符c和一个字符串s,调用delchar(s,c)函数删除字符串s中 \/\/ 所有的c字符,然后输出删除后的字符串。\/\/例 如:输入字符a和字符串li wang zha jin xiao,输出:li wng zh ji...

c语言编程,在一行字符串中删去指定的字符。
include<stdio.h>#include<string.h>int main(){ char s[1000],q,i; gets(s); q=getchar(); int d=strlen(s); for(i=0; i<d; i++) { if(s[i]!=q) printf("%c",s[i]); } return 0;} ...

C语言编程:在一个指定的 字符串中删除指定的 字符,并输出该字符串。
include <stdio.h> include <string.h> int main(int argc, char **argv){ int num = 0;for (int i = 0; i <= strlen(argv[1]); i++)if (argv[1][i] != argv[2][0]){ argv[1][num] = (i == strlen(argv[1])) ? '\\0' : argv[1][i];num++;} printf("%s\\n...

...将该字符串s中所有的字符c删除,并输出结果。谢谢?。
编制程序实现:从键盘输入一个字符串,将该字符串s中所有的字符c删除,并输出结果。谢谢?。  我来答 1个回答 #热议# 直播| 一起见证OPPO Reno7系列正式亮相!听不清啊 高能答主 2013-12-16 · 把复杂的事情简单说给你听 知道顶级答主 回答量:7.7万 采纳率:90% 帮助的人:9205万 我也去答题...

C语言“在字符串中删除指定的字符”?怎么编写程序
从字符数组中删除特定的字符,即输入要删除的指定字符,利用for循环找到非指定字符,将非指定字符输出即可。以下为具体的实现方法:include<stdio.h> int main(){ char str[100],c;int j,k;printf("please input a string:");gets(str);printf("\\nEnter a character:");c=getchar();for(j=...

c语言中怎样写删除字符串中某个字符的程序啊?
c语言中书写删除字符串中某个字符的程序的具体操作步骤如下:1、编写头函数,包括“#include <stdio.h>.”与“#include <string.h>.“。2、定义两个相同容量的字符串储存的变量 char a【100】; char b【100】。以及整数变量 int c;int i=0,j=0;其中a[100]是存字符串的,b【100】是...

c语言程序中 从字符串s中删除指定的字符c.
c语言从字符串s中删除字符c:include<stdio.h> \/*从字符串S中删除字符c*\/ voidsqueeze(char[],char);intmain()include<stdio.h> gets(s);printf("输入需要删除的指定字符ch:");ch=getchar();for(i=j=0;s[i]!='\\0';i++)if(s[i]!=ch)s[j++]=s[i];s[j]='\\0';printf("...

删除所输入字符串中所有的"*"
下面的程序先输入一个字符串,然后输入要删除的字符,可以是'*',运行结果,字符串内的'*'都会被删除。include<stdio.h> include<stdlib.h> include<string.h> void delete_character(char *temp,char ch);int main(){ char str[100];int i;\/\/int length;char delete_ch;printf("please input...

编程序,将字符串s1中所有出现在字符串s2中的字符删去
void del( char a[], char b[]) ;main (){ char a[255];char b[255];gets(a);\/*原先的顺序*\/ gets(b);\/*原先的顺序*\/ del(a,b);puts(a);\/*删除后的顺序*\/ return 0;} \/* 返回字符ch是否出现在字符串b中,找到返回1,未找到返回0 *\/ int search(char ch, char b[]){ ...

鄱阳县15635344578: 编程实现:字符串删除重复字符 -
旗虏友来: 如果只是找相邻的重复字符,那么就挨个跟前一个字符比较,不相同的就移动到另一个字符串中,相同的就不移动 如果要求所有字符都没有重复的,那么就跟前面的所有字符比较,如果跟前面的都不相同就移动到另一个字符串中,如果相同,那么就根据要求舍去1个

鄱阳县15635344578: C语言编写一个函数,将字符串中连续重复出现的字符去除 -
旗虏友来: C语言自定义函数,一次性去除连续重复字符,参考代码如下: #include<stdio.h> char *fun(char *str) { int i=1,j=0; if(str==NULL) return NULL; if(str[0]==0) return str; while(str[i]!=0) if(str[j]!=str[i]) str[++j]=str[i++]; else ++i; str[j+1]=0; return str; } int main() { char str[500]; gets(str); puts(fun(str)); return 0; }

鄱阳县15635344578: C语言 删除重复字符 -
旗虏友来: 程序的基本思路是把输入的字符串放到a[100]字符组中,然后把a[100]中所有不重复的字符添加到b[100]中,间接完成对字符串中的重复字符的删除#include<stdio.h> void main() { char a[100],b[100]; //定义两个字符组,a[100]用来接收输入的字...

鄱阳县15635344578: c语言输入一个字符串,把字符串中相同的字符全部除去,然后输出缩短的字符串. -
旗虏友来: #include<stdio.h>#include<string.h> int Delete(char a[],int n) { for(int i=0;i<n;i++) { if(a[i]==a[n]) return 0; } return 1; } void main() { int i,j,n; char a[1000]; printf("请输入字符串内容:\n"); scanf("%s",&a); n=strlen(a); for(i=1;i<n;i++) { if(Delete(a,i...

鄱阳县15635344578: c++编程:输入一串字符,删除该串字符中所有的与给定字符相同的字符.要求:用函数完成 -
旗虏友来: 没错,他是只能接收一个字符,但是因为你是在while里面循环,如果但他没有收到换行符时,他是会不断接收下一个字符的. while((c=getchar())!='\n') //就是这个换行符{ } 如果你想验证我的说你可以把上面的代码改成这样,当你输入3时他就不会收下个字符了. while((c=getchar())!=3) //就是这个换行符{ }

鄱阳县15635344578: c语言删除重复字符 -
旗虏友来: 你这个代码是删除字符串中的a,不是删除重复的字符,而且用来过度的F[]没有用到,问题比较多,试下这个!Char f[27]; Int I=0,j,k=0; While(chr[i++]!=\0) {for(j=0,j<27,j++) If chr[i]==chr[j] Else f[k++]=chr[i]; } For (j=0,j<27,j++) Chr[j]=f[j]

鄱阳县15635344578: 怎样可以删除字符串中重复的字符!!! -
旗虏友来: str1 = "a,d,f,s,f,a" strs = split(str1,",") for i = 0 to ubound(strs)for j = 0 to i-1if strs(i)=strs(j) thenstrs(i)=""strs(j)=""end ifnext next for i = 0 to ubound(strs)if strs(i)<>"" then str2 = str2 + " " + strs(i) next str2= replace(trim(str2)," ",",")

鄱阳县15635344578: 输入一串字符,删除该串字符中所有的与给定字符相同的字符. -
旗虏友来: 什么意思呀!是不是想全部删除呀!假如是,按着鼠标左键拖动选中,再按下键盘上的Delete键就全删了,或全选后,按下鼠标右键点删除就行了.

鄱阳县15635344578: #c语言编程#实现将字符串中所有重复的字符剔除,将剔除之后的输出 如sajsk输出ajk -
旗虏友来: #include void sort(char s[]) { // 选择排序 int i,j,k,t,len = strlen(s); for(i = 0; i k = i; for(j = i + 1; j if(s[k] } if(i != k) { t = s[i]; s[i] = s[k]; s[k] = t; } } }// 将不重复的字符复制到t[],返回删除的字符个数 int change(char s[], char t[]) { int i = 1,j = 0,cnt = 0; sort(s); t[0]...

鄱阳县15635344578: 请用C++编写一个程序实现删除字符串中重复的字符,并分别统计,重复的字符个数.例如:原字符串为“a -
旗虏友来: 确定是c++? STL string+unique+count,可以很容易解决:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19#include <iostream> #include <string> #include <algorithm>usingnamespacestd;intmain(intargc, charconst*argv[]) {string str = "...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网