字符串数组排序
public class StringTest1 {
public static void main(String[] args) {
String[] strs = {"attention","absorb","pay","handle"};
printArray(strs);
sortString(strs);
printArray(strs);
}
public static void sortString(String[] strs) {
for (int i = 0; i < strs.length -1 ; i++) {
for (int j = i + 1; j < strs.length; j++) {
//用compareTo()比较对象。或者用Arrays.sort(strs)对数组排序
if(strs[i].compareTo(strs[j])>0){
swap(strs,i,j);
}
}
}
}
private static void swap(String[] strs, int i, int j) {
String temp = strs[i];
strs[i] = strs[j];
strs[j] = temp;
}
private static void printArray(String[] strs) {
for (int i = 0; i < strs.length; i++) {
System.out.print(strs[i]+" ");
}
System.out.println();
}
}
查找子串出现次数
public class StringTest2 {
public static void main(String[] args) {
String str = "jkhsaaaajdkvnvmaaaasdfhsakdjhaaaafjsnxcaaaanza";
String key = "aaaa";
int count = getKeyCount(str,key);
System.out.println("count="+count);
}
public static int getKeyCount(String str, String key) {
int index = 0;
int count = 0;
while((index = str.indexOf(key,index))!=-1){
index = index + key.length();
count++;
}
return count;
}
}
将一个字符串从长到短打印出来
public class StringTest3 {
public static void main(String[] args) {
String str = "abcdef";
printStringByLength(str);
}
public static void printStringByLength(String str) {
for (int i = 0; i < str.length(); i++) {
for (int start = 0, end = str.length() - i; end <= str.length(); start++, end++) {
String temp = str.substring(start, end);
System.out.println(temp);
}
}
}
}
abcdef
abcde
bcdef
abcd
bcde
cdef
abc
bcd
cde
def
ab
bc
cd
de
ef
a
b
c
d
e
f
最大相同子串
public class StringTest4 {
public static void main(String[] args) {
String s1 = "asdabcdetghjfghjk";
String s2 = "cccabcdewww";
String maxSubString = getMaxSubstring(s2, s1);
System.out.println("maxSubstring:" + maxSubString);
}
public static String getMaxSubstring(String s1, String s2) {
String max, min;
max = (s1.length() > s2.length()) ? s1 : s2;
min = max.equals(s1) ? s2 : s1;
for (int i = 0; i < min.length(); i++) {
for (int start = 0, end = min.length() - i; end <= min.length(); start++, end++) {
String temp = min.substring(start, end);
if(max.contains(temp)){
return temp;
}
}
}
return null;
}
}
abcde
字符串内排序
public class StringTest5 {
public static void main(String[] args) {
String str = "acdebgf";
str = sortStringByChar(str);
System.out.println(str);
}
public static String sortStringByChar(String str) {
//1,将字符串转成数组。转成字符数组。
char[] chs = str.toCharArray();
//2,对数组排序。
java.util.Arrays.sort(chs);
//3,将排序后的数组转成字符串。
return new String(chs);
}
}
abcdefg
字符串内的数字排序
public class StringTest1 {
private static final String SPACE = " ";
public static void main(String[] args) {
String numsString = "23 9 -4 18 100 7";
numsString = sortNumberString(numsString);
System.out.println("nums=" + numsString);
}
public static String sortNumberString(String numsString) {
String[] strs = numsString.split(SPACE);
int[] nums = parseIntArray(strs);
java.util.Arrays.sort(nums);
return toString(nums);
}
private static String toString(int[] nums) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < nums.length; i++) {
if(i!=nums.length-1){
sb.append(nums[i]+" ");
}else{
sb.append(nums[i]);
}
}
return sb.toString();
}
private static int[] parseIntArray(String[] strs) {
int[] arr = new int[strs.length];
for (int i = 0; i < strs.length; i++) {
arr[i] = Integer.parseInt(strs[i]);
}
return arr;
}
}