1.判断字符串有无重复字符
public static boolean checkDifferent ( String iniString) {
if ( iniString. isEmpty ( ) ) {
return true ;
}
int [ ] flag= new int [ 128 ] ;
for ( int i = 0 ; i < iniString. length ( ) ; i++ ) {
int c= ( int ) ( iniString. charAt ( i) ) ;
if ( flag[ c] > 0 ) return false ;
else flag[ c] ++ ;
}
return true ;
}
2.翻转字符串
public String reverseString ( String iniString) {
int len= iniString. length ( ) ;
char [ ] charArr= new char [ len] ;
for ( int i = 0 ; i < len; i++ ) {
charArr[ i] = iniString. charAt ( len- 1 - i) ;
}
return new String ( charArr) ;
}
public String reverseString ( String iniString) {
StringBuilder sb= new StringBuilder ( iniString) ;
return sb. reverse ( ) . toString ( ) ;
}
3.变形词问题
public boolean checkSam ( String stringA, String stringB)
{
int len1= stringA. length ( ) ;
int len2= stringB. length ( ) ;
if ( len1!= len2) {
return false ;
}
char [ ] arr1= stringA. toCharArray ( ) ;
char [ ] arr2= stringB. toCharArray ( ) ;
Arrays . sort ( arr1) ;
Arrays . sort ( arr2) ;
return Arrays . equals ( arr1, arr2) ;
}
4.替换字符串中的空格
public static String replaceSpace ( String iniString, int length) {
return iniString. replaceAll ( "\\s" , "%20" ) ;
}
public static String replaceSpace ( char [ ] iniString, int length) {
int count= length;
for ( int i = 0 ; i < length; i++ ) {
if ( iniString[ i] == ' ' ) {
count+= 2 ;
}
}
int p1= length- 1 ;
int p2= count- 1 ;
while ( p1>= 0 ) {
if ( iniString[ p1] == ' ' ) {
iniString[ p2-- ] = '0' ;
iniString[ p2-- ] = '2' ;
iniString[ p2-- ] = '%' ;
} else {
iniString[ p2-- ] = iniString[ p1] ;
}
p1-- ;
}
return new String ( iniString, 0 , count) ;
}
5.字符串压缩
public class Demo11 {
public static void main ( String [ ] args) {
String res= zipString ( "aaabbbbbcc" ) ;
System . out. println ( res) ;
}
private static String zipString ( String src) {
int count= 0 ;
char last= 0 ;
StringBuilder sb= new StringBuilder ( ) ;
for ( int i = 0 ; i < src. length ( ) ; i++ ) {
char charAt= src. charAt ( i) ;
if ( sb. length ( ) == 0 ) {
sb. append ( charAt) ;
count++ ;
} else {
if ( last== charAt) {
count++ ;
} else {
sb. append ( count) . append ( charAt) ;
count= 1 ;
}
}
last= charAt;
}
if ( count>= 1 ) {
sb. append ( count) ;
}
if ( sb. length ( ) >= src. length ( ) ) {
return src;
}
return sb. toString ( ) ;
}
}
6.判断两字符串的字符集是否相等
public static void main ( String [ ] args) {
boolean res = check2 ( "abcde" , "deabccadcd" ) ;
System . out. println ( res) ;
}
static boolean check ( String s1, String s2) {
int [ ] help = new int [ 256 ] ;
for ( int i = 0 ; i < s1. length ( ) ; i++ ) {
char c = s1. charAt ( i) ;
if ( help[ c] == 0 )
help[ c] = 1 ;
}
for ( int i = 0 ; i < s2. length ( ) ; i++ ) {
char c = s2. charAt ( i) ;
if ( help[ c] == 0 )
return false ;
}
return true ;
}
static boolean check2 ( String s1, String s2) {
Map < Character , Integer > map= new HashMap < > ( ) ;
for ( int i = 0 ; i < s1. length ( ) ; i++ ) {
char c= s1. charAt ( i) ;
if ( map. get ( c) == null ) {
map. put ( c, 1 ) ;
}
}
for ( int i = 0 ; i < s2. length ( ) ; i++ ) {
char c = s2. charAt ( i) ;
if ( map. get ( c) == null ) {
return false ;
}
}
return true ;
}
7.判断A串是否B串的旋转字符串
public class Demo13 {
public static boolean isRotate ( String a, String b)
{
if ( a. length ( ) != b. length ( ) ) {
return false ;
}
StringBuilder sb= new StringBuilder ( b) . append ( b) ;
return sb. toString ( ) . contains ( a) ;
}
}
8.移除字符串中连续出现的K个0
public class Demo15 {
static String remove ( String iniString, int k)
{
String regexp= "0{" + k+ "}" ;
return iniString. replaceAll ( regexp, "" ) ;
}
public static void main ( String [ ] args) {
System . out. println ( remove ( "abcd0000adfsa00000ddd" , 3 ) ) ;
}
}
9.神奇的回文字符串
public class Case10_Palindrome {
public boolean isPalindrome ( String src) {
if ( StringUtils . isEmpty ( src) ) {
return true ;
}
return src. equals ( new StringBuilder ( src) . reverse ( ) . toString ( ) ) ;
}
static void palindromeNumber ( ) {
for ( int i = 1 ; i < 10 ; i++ ) {
for ( int j = 0 ; j < 10 ; j++ ) {
System . out. println ( i * 1000 + j * 100 + j * 10 + i) ;
}
}
}
public static void main ( String [ ] args) {
palindromeNumber ( ) ;
}
}