package com.chen;
public class stringTest {
public static void main(String[] args) {
String a = "ABBABCCDE";
String b = "ABBCCD";
//判断b中的元素是否都在a中
System.out.println(toChar(a,b));
}
public static boolean toChar(String a,String b) {
StringBuffer stringBuffer1 = new StringBuffer(a);
StringBuffer stringBuffer2 = new StringBuffer(b);
for (int i = 0; i<stringBuffer2.length();) {
if (stringBuffer1.charAt(i) == stringBuffer2.charAt(i)) {
stringBuffer1.deleteCharAt(i);
stringBuffer2.deleteCharAt(i);
} else {
stringBuffer1.deleteCharAt(i);
}
}
if (stringBuffer2.length() > 0){
return false;
}else{
return true;
}
}
}
第二种写法,我是真的笨。。。
package com.queue; import java.util.*; public class Chaoji { public static void main(String[] args) { String a = "ABBABCCDE"; String b = "ABBCCD"; List list1 =toList(a); List list2 = toList(b); //判断b是否存在A中 boolean bb =list1.containsAll(list2); if(!bb){ System.out.println("不是"); }else{ //判断个数 Map map1 =toMap(list1); Map map2 =toMap(list1); //判断个数 boolean bbb = pan(map1,map2); if (!bbb){ System.out.println("不是"); }else { System.out.println("是"); } } } private static boolean pan(Map map1, Map map2) { Iterator<Character> iter = map1.keySet().iterator(); int value1 = 0; int value2 =0; while(iter.hasNext()){ Character key= iter.next(); value1 = (int)map1.get(key); value2 =(int)map2.get(key); } if(value2>value1){ return false; }else{ return true; } } private static Map toMap(List list1) { Map map = new HashMap(); for (Object i : list1) { if (map.get(i) == null) { map.put(i, 1); } else { map.put(i, (int)map.get(i) + 1); } } return map; } //转换成list; private static List toList(String b) { List list = new ArrayList(); char[] arr = b.toCharArray(); for (int i = 0; i <arr.length ; i++) { list.add(arr[i]); } return list; } }