您的位置:首页 > 其它

题目1206:字符串连接

2017-03-29 19:05 197 查看
题目描述:

不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。

输入:

每一行包括两个字符串,长度不超过100。

输出:

可能有多组测试数据,对于每组数据,

不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。

输出连接后的字符串。

样例输入:

abc def

样例输出:

abcdef

来源:

2010年华中科技大学计算机保研机试真题

分析:不用任何函数就直接用一个去重的集合,然后拼接字符串

代码:`package demo2;

import java.util.HashSet;

import java.util.Iterator;

import java.util.Scanner;

import java.util.Set;

public class Main {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);

while (input.hasNext()) {
String str1 = input.next();
String str2 = input.next();
//把字符串转化成数组
char[] s1 = str1.toCharArray();
char[] s2 = str2.toCharArray();

String result = solove(s1,s2);

print(result);

}

input.close();

}

private static void print(String result) {

System.out.println(result);

}

private static String solove(char[] s1, char[] s2) {
StringBuffer sb = new StringBuffer();

Set<Character> set = new HashSet<Character>();

if (s1==null && s2 == null ) {
return "";
}
else if (s1 == null && s2 != null) {
for (int i = 0;i<s2.length;i++) {
sb.append(s2[i]);
}
}
else if (s1 != null && s2 == null) {
for (int i = 0;i<s1.length;i++) {
sb.append(s1[i]);
}
} else {//两者都不为空的时候
for (int i = 0;i<s1.length;i++) {
set.add(s1[i]);
}
for (int i = 0;i<s2.length;i++) {
set.add(s2[i]);
}

//循环遍历set拼接字符串
if (set != null && set.size()>0) {
Iterator<Character> it = set.iterator();
while (it.hasNext()) {
sb.append(it.next());
}
}
}

return sb.toString();
}


}

`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: