字符串算法题二
import java.lang.String;
import org.junit.Test;
public class Demo {
@Test
public void test1() {
String str = " a b c ";
char[] chars = str.toCharArray();
int start = 0;
int end = chars.length - 1;
for (int i = 0; i < end; i++) {
if (chars[start] == ' ') {
start++;
}
if (chars[end] == ' ') {
end--;
}
}
System.out.println(str.substring(start, end + 1));
}
@Test
public void test2() {
String str = "abcdefg";
int beginIndex = 2;
int endIndex = 5;
char[] chars = str.toCharArray();
for (int i = beginIndex, j = endIndex; i < j; i++, j--) {
char temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
}
System.out.println(new String(chars));
}
@Test
public void test3() {
String str = "abkkcadkabkebfkabkskab";
char[] chars = str.toCharArray();
int count = 0;
for (int i = 0; i < chars.length; i++) {
if (chars[i] == 'a' && chars[i + 1] == 'b') {
count++;
}
}
System.out.println(count);
}
@Test
public void test4(){
System.out.println("见下面的Demo1");
}
@Test
public void test5(){
String str = "dagdavxfsa";
char[] chars = str.toCharArray();
System.out.println(chars);
System.out.println(new String(chars));
}
}
public class Demo1 {
public static void main(String[] args) {
String s1 = "abcwerthelloyuiodef";
String s2 = "cvhellobnm";
String newS = getlongsub(s1, s2);
String[] newS1 = getlongsub1(s1, s2);
System.out.println(newS);
System.out.println(Arrays.toString(newS1));
}
public static String getlongsub(String str1, String str2) {
if (str1 != null && str2 != null) {
String maxstr = (str1.length() >= str2.length()) ? str1 : str2;
String minstr = (str1.length() < str2.length()) ? str1 : str2;
for (int i = 0; i < minstr.length(); i++) {
for (int t = 0, j = minstr.length() - i; j <= minstr.length(); t++, j++) {
if (maxstr.contains(minstr.substring(t, j))) {
return minstr.substring(t, j);
}
}
}
}
return null;
}
public static String[] getlongsub1(String str1, String str2) {
if (str1 != null && str2 != null) {
StringBuffer sbuffer = new StringBuffer();
String maxstr = (str1.length() >= str2.length()) ? str1 : str2;
String minstr = (str1.length() < str2.length()) ? str1 : str2;
for (int i = 0; i < minstr.length(); i++) {
for (int t = 0, j = minstr.length() - i; j <= minstr.length(); t++, j++) {
if (maxstr.contains(minstr.substring(t, j))) {
sbuffer.append(minstr.substring(t, j) + ",");
}
}
if (sbuffer.length() != 0) {
break;
}
}
String[] str = sbuffer.toString().replaceAll(",$", "").split(",");
return str;
}
return null;
}
}