[TOC]
两个经典面试算法题
一、如何判断一个字符串中某个字符出现的次数?
package com.neusoft;
public class FindCharacter {
/**
* for循环
*
* @param str
* @param searchChar
* @return
*/
public static int countChar(String str, char searchChar) {
int count = 0;
char[] charArray = str.toCharArray();
for (char item : charArray) {
if (item == searchChar) {
count++;
}
}
System.out.println("字符" + searchChar + "出现的次数为:" + count);
return count;
}
/**
* 字符串替换
*
* @param str
* @param searchChar
* @return
*/
public static int countCharNoFor(String str, String searchChar) {
int count = 0;
int origialLength = str.length();
/**
* replace(char,char)
* replace(string,string)
*/
str = str.replace(searchChar, "");
int newLength = str.length();
count = origialLength - newLength;
System.out.println("字符" + searchChar + "出现的次数为:" + count);
return count;
}
public static void main(String[] args) {
String str = "ABC123ABC";
String searchChar = "B";
countCharNoFor(str, searchChar);
}
}
二、字符串反转
package com.neusoft;
public class StringRever {
public static void reverStr(String str) {
StringBuilder stringBuilder = new StringBuilder(str);
stringBuilder.reverse();
String newStr = stringBuilder.toString();
System.out.println("反转前:" + str);
System.out.println("反转后:" + newStr);
}
public static void reverStrByStack(String str) {
StringBuilder stringBuilder = new StringBuilder(str);
stringBuilder.reverse();
String newStr = stringBuilder.toString();
System.out.println("反转前:" + str);
System.out.println("反转后:" + newStr);
}
/**
* 还有一种思路:字符串转数组,高索引至低索引遍历输出,使用for循环
* @param args
*/
public static void main(String[] args) {
reverStr("1231212123123");
}
}