案例:设计并实现一个求两个字符串交集的函数并将交集部分返回一个新的字符串
如:“abacdedfg”“bedesgd”输出“bdeg”
思路:
(1) 声明两个字符串i=0
(2) 条件:i<length;
(3) 函数,判断是否另一个字符串中有无?有,就记录并减少另一个字符串中的对应字符。
(4) 过渡i++
(5) 输出交集
代码:
package ch6;
public class C106_01_交集 {
//假设存在函数Do将交集添加到一个字符串中
public static String d ="";
public static void main(String[] args) {
String a = "abacdedfg";
String b = "bedesgd";
for(int i=0;i<a.length();i++){
for(int j=0;j<b.length();j++){
if(a.charAt(i)== b.charAt(j)) {
Do(a.charAt(i));
}
}
}
System.out.println(d);
}
/**
* 将交集添加到字符串中,判断是否交集已存在,存在则返回空,不存在则添加至字符串
* @param a 待添加的交集(字符)
*/
private static void Do(chara) {
for(int i=0;i<d.length();i++){
if(d.charAt(i) == a)
return;
}
d +=a;
}
}
结果:bdeg
心得:讲道理,字符串-》字符数组,字符数组-》字符串,
问题没有深究,由于是刚刚复习完字符串的一套知识所以用起来还算舒畅,后面放知识点:
String a = " hElLojava ";
char[] str = a.toCharArray();//字符串变字符数组
/* for(char element:str){
System.out.print(element+"");
}*/
int size = a.indexOf("j");//输出到'j '为止
System.out.println(size);
char ch = a.charAt(6);//查找第几个字符
System.out.println(ch);
String string = a.substring(3,9);//包含前面的下表,不包含后面的下表
System.out.println(string);
a = a.trim();//去首尾空格
System.out.println(a);
//大写变小写
a =a.toLowerCase();
System.out.println(a);
//小变大
a =a.toUpperCase();
System.out.println(a);
// 如果是“字符串数组”转“字符串”,只能通过循环,没有其它方法
String[] str1 ={"abc","bcd", "def"};
StringBuffer sb = new StringBuffer();
for(inti = 0; i< str1.length;i++){
sb. append(str1[i]);
}
String s = sb.toString();
System.out.println(s);
// 如果是“字符数组”转“字符串”可以通过下边的方法
char[] data={'a','b','c'};
String ss=new String(data);
//输出字符串数组
String[] d ={"J","A","v","a"};
String aa = "";
for(String element:d){
aa+=element;
}
//字符串添加字符
String e="";
e +='a';