输入一个字符串,要求吧其中重复的去除比如输入:aaabbaccdcbe
输出:abcde3Q
输出:abcde3Q
解决方案 »
- 如下死锁代码中,去掉任何一个Object 静态则锁不住,为什么Object 一定要静态啊??求大神解决。。3ks!
- Dialog中如何操作主窗口中的panel
- 刚学javaj,请大家帮帮看看,谢谢了,很急
- 请问java中Tab值怎么表示?谢谢!
- 如何在JCREATOR使用JAVADOC 请高手指教~~~~~~~~~~~~~~~~~~~~~~~
- 请教各高人 , java中访问文件时能否使用相对路径 ?
- 初学者求教
- 大家对thinking in java 2有没有什么感悟啊??今天看内隐类的时候遇到了大问题!
- 如何在Java中动态创建一个类
- 谁能解释一下什么是B/S结构,以及java的一些实现
- 100分求!怎样用JAVA写一个浏览网页的应用呢?
- 空指针错误,大家帮忙找错
table[str[i]] = ture;
. 最后遍历一下bool数组就行了。
char[] b = a.toCharArray();
char[] c = new char[b.length];
for (int i = 0; i < b.length; i++) {
int j = 0;
for (; j < c.length; j++) {
if (c[j] == b[i] || c[j] == 0) break;
} if (j < c.length-1) {
c[j] = b[i];
}
} System.out.println(c);
public static void main(String[] args) {
String a = "aaabbaccdcbe";
char[] b = a.toCharArray();
char[] c = new char[b.length];
for (int i = 0; i < b.length; i++) {
int j = 0;
for (; j < c.length; j++) {
if (c[j] == b[i] || c[j] == 0) break;
} if (j < c.length-1) {
c[j] = b[i];
}
}
System.out.println(c);
}
}
public static void main(String[] args) {
String s = "aaabbaccdcbe";
System.out.println(s.indexOf("d"));
StringBuffer str = new StringBuffer();
for(int i = 0;i<s.length();i++){
if(str.indexOf(String.valueOf(s.charAt(i))) == -1){
str.append(s.charAt(i));
}
}
System.out.println(str);
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.ArrayList;class DelDuplicate { /**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine();
StringBuffer s = new StringBuffer(str);
DeleteDup(s);
} public static void DeleteDup(StringBuffer str1) {
StringBuffer temp = str1;
for (int i = 1; i < temp.length(); i++) {
if (temp.charAt(0) == temp.charAt(i))
temp.deleteCharAt(i);
}
StringBuffer temp1 = new StringBuffer();
temp1.append(temp.charAt(0));
temp.deleteCharAt(0);
System.out.print(temp1);
DeleteDup(temp);
}
}那我之前自己写的代码为什么老是不行呢?请教
HashSet hs = new HashSet();
String str = "aaabbaccdcbe";
for(int i = 0; i < str.length(); i ++){
hs.add(str.substring(i, i+1));
}
System.out.print(hs.toString());这样就是不能保证是a,b,c,d,e的顺序了。不过可以自己用Comparator接口排序
String s = "aaabbaccdcbe";
System.out.println(s.indexOf("d"));
StringBuffer str = new StringBuffer();
for(int i = 0;i<s.length();i++){
if(str.indexOf(String.valueOf(s.charAt(i))) == -1){
str.append(s.charAt(i));
}
}
System.out.println(str);
}
用list也行,插入的时候判断一下有没有。
if (temp.charAt(0) == temp.charAt(i))
temp.deleteCharAt(i);
}
StringBuffer temp1 = new StringBuffer();
temp1.append(temp.charAt(0));
temp.deleteCharAt(0);
System.out.print(temp1);
DeleteDup(temp);
}
}
这里面把i--
难道
是
for(i=temp.length()-1;i>0;i--)
StringBuffer temp = str1;
for (int i=temp.length()-1;i>0;i--) {
if (temp.charAt(0) == temp.charAt(i))
temp.deleteCharAt(i);
}
StringBuffer temp1 = new StringBuffer();
temp1.append(temp.charAt(0));
temp.deleteCharAt(0);
System.out.print(temp1);
DeleteDup(temp);
}
后结果是能出来,但是Eclipse 里报StringIndexOutOfBoundsException: String index out of range: 0错误,大家帮忙指正下。
public class strTest { public String strTest(String str){
String st = "";
for (int i=0;i<str.length();i++){
String s1 = str.substring(i,i+1);
if(st.indexOf(s1) < 0){
st = st + s1;
}
}
return st;
}
public static void main(String[] args) {
strTest str1 = new strTest();
System.out.println(str1.strTest("aaaakjkljljlopii[ipi"));
}}这样比较适合初学者看懂,保证顺序
temp.deleteCharAt(0);
DeleteDup(temp);你的问题在这里,当temp里面只有一个元素的时候,再删就会产生问题了,加个判断就可以 public static void DeleteDup(StringBuffer str1) {
StringBuffer temp = str1;
for (int i = 1; i < temp.length(); i++) {
if (temp.charAt(0) == temp.charAt(i))
temp.deleteCharAt(i);
}
StringBuffer temp1 = new StringBuffer();
temp1.append(temp.charAt(0));
System.out.print(temp1);
if (temp.length() > 1){
temp.deleteCharAt(0);
DeleteDup(temp);
}
}