1、 if(sourse.size()=0) for (int i = 0; i result.size(); i+) system.out.print(result.elementat(i); system.out.print(n); count+; return; i sourse.size(); vectorcharactertsourse=new vectorcharacter(sourse); vectorcharactertresult=new vectorcharacter(result); tresult.add(sourse.elementat(i); tsourse.remov
2、e(i); new question1().fullpermutation(tsourse, tresult); public static void main(string args) scanner scanner=new scanner(system.in); int n=scanner.nextint(); vectorcharacter sourse=new vectorcharacter(); vectorcharacter result=new vectorcharacter(); i n; sourse.add(char)(a+i); new question1().fullp
3、ermutation(sourse, result); system.out.println(question1.count); */ 方法二: import java.util.arraylist; import java.util.iterator; import java.util.linkedhashset; import java.util.list; import java.util.scanner; import java.util.set; public class demo03 / 去掉重复元素,放入lis public static void removeduplicate
4、(string s,setcharacter lis) for(char x:s.tochararray() lis.add(x); / 为方便操作 将 sets 转 lis public static void convert(listcharacter lis,setcharacter sets) iteratorcharacter iter = sets.iterator(); while(iter.hasnext() lis.add(iter.next(); / 检测符合条件的元素组合 public static void check(setcharacter sets) listch
5、aracter lis = new arraylistcharacter(); convert(lis,sets); stringbuffer sb = new stringbuffer(); for(int i=0;ilis.size()-2;i+) for(int j=i+1;j+1lis.size();j+)/ 向后添加两位,所以 j+1lis.size() for(int k=j+1;klis.size();k+) sb.append(lis.get(i); sb.append(lis.get(j); sb.append(lis.get(k); system.out.println(s
6、b); / 输出组合 sb.setlength(0); / 清空 public static void main(string args) scanner scan = new scanner(system.in); system.out.println(输入串(不大于30个字符)。); string s = scan.nextline(); setcharacter sets = new linkedhashsetcharacter();removeduplicate(s,sets); check(sets); 运行结果: 输入串(不大于30个字符)。 abcd abc abd acd bc
7、d 2.串的简单处理 串的处理 在实际的开发工作中,对字符串的处理是最常见的编程任务。 本题目即是要求程序对用户输入的串进行处理。具体规则如下: 1. 把每个单词的首字母变为大写。 2. 把数字与字母之间用下划线字符(_)分开,使得更清晰 3. 把单词中间有多个空格的调整为1个空格。 例如: 用户输入: you and me what cpp2005program 则程序输出: you and me what cpp_2005_program this is a99cat this is a 99_cat 我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。 每个单词间由1
8、个或多个空格分隔。 假设用户输入的串长度不超过200个字符。 public class question2 string string=scanner.nextline(); vectorcharactervector=new vectorcharacter(); i string.length(); vector.add(string.charat(i); try int index=0; while (indexvector.size() if(index=0vector.elementat(index)=avector.elementat(index)=z) vector.set(ind
9、ex, (char)(vector.elementat(index)-(a-a); else if(vector.elementat(index-1)= vector.elementat(index)= ) vector.remove(index); index-; else if (vector.elementat(index-1)= (vector.elementat(index)=avector.elementat(index)=z) else if(vector.elementat(index)=avector.elementat(index)=z)(vector.elementat(
10、index-1)=0vector.elementat(index-1)=9) vector.add(index, _); index+; if(vector.elementat(index-1)=avector.elementat(index-1)=z)(vector.elementat(index)=0vector.elementat(index)=9) i vector.size(); system.out.print(vector.elementat(i); system.out.println(); catch (arrayindexoutofboundsexception e) /
11、todo: handle exception import java.util.regex.matcher; import java.util.regex.pattern; /* * 本题目即是要求程序对用户输入的串进行处理。 *1. 把每个单词的首字母变为大写。 *2. 把数字与字母之间用下划线字符(_)分开,使得更清晰 *3. 把单词中间有多个空格的调整为1个空格。 *我们假设:每个单词间由1个或多个空格分隔。*假设用户输入的串长度不超过200个字符。 public class simplestring public static void main(string args) string str=; str=(new scanner(system.in).nextline(); string str1=str.split( +);istr1.length;i+)str1i=string.valueof(char)(str1i.charat(0)+(a-a)+str1i.substring(1);string s=;istr1.length-1;i+)/system.out.print(str1i+ ); s+=str1i+ ; s+=str1str1.leng
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1