涉及内容:
1、找出字符串中第一个只出现一次的字符
2、在字符串1中删除字符串2的字符
3、字符串进行左移
4、读取字符串,并获得其中的单词
话不多说,看代码理解本文
package UsingString;
/**
* @Description
* @author xu.xin
* @date 2018年7月16日 上午11:00:45
*/
public class Demo01 {
static String str = "ab,ac,cd,eff";
static String c = "a";
static String b="Hello one,Dream one";
public static void main(String[] args) {
// OnlyOne(str,c);
// DeleteChar(str,c);
//LeftRotate(str);
GetWords(b);
}
// 在字符串中找到第一个只出现一次的字符串
static void OnlyOne(String str1, String str2) {
for (int i = 0; i < str1.length(); i++) {
// String substring(i,j)左闭右开,抽取出i位之外的其他所有字符
String temp = str1.substring(0, i) + str1.substring(i + 1);
System.out.println(temp);
// System.out.println(temp);
// 一步就可返回字符在字符串中的位置
int idx = temp.indexOf(str1.charAt(i));
if (idx == -1) {// String的indexOf方法没有找到对应字符的话,返回-1
str2 = String.valueOf(str1.charAt(i));
break;
}
}
System.out.println(str2);
}
// 在字符串1中删除字符串2中的所有字符
static void DeleteChar(String str1, String str2) {
for (int i = 0; i < str2.length(); i++) {
// 以str2字符长度为循环次数
int idx = 0;
while ((idx = str1.indexOf(str2.charAt(i))) != -1) {// 如果str1中有str2中的字符
str1 = str1.substring(0, idx) + str1.substring(idx + 1);// 这里是一步步进行删减字符串中的重复字符
}
}
System.out.println(str1);
}
static void LeftRotate(String str1) {
// 左旋转两位(左移位2个字符)
int length = 2;
String end = str1.substring(0, length);
String start = str.substring(length);
String ret = start + end;
System.out.println(ret);
}
//获得单词
static void GetWords(String str1) {
char[] item = str1.toCharArray();// 字符数组
int offset = 0;
boolean ifInser = false;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < item.length; i++) {
if (item[i] == ',') {
ifInser = false;
offset = i + 1;
}
if (item[i] == '.') {
ifInser = false;
}
if (item[i] == ' ') {
item[offset] = (char) ((int) item[offset] + 32);
sb.setCharAt(offset, item[offset]);
item[i + 1] = (char) ((int) item[i + 1] - 32);
ifInser = true;
}
if (ifInser) {
sb.insert(offset, item[i]);//序号offset被item【i】被替换
if (item[i] != ' ') {
offset++;
}
} else {
sb.append(item[i]);
}
}
System.out.println(sb.toString());
}
}