新人练习之只使用String.length和String.CharAt();来完成常用StringAPI的编写
来源:互联网 发布:湖南网络工程学院宿舍 编辑:程序博客网 时间:2024/06/05 15:05
// boolean equals(Object obj):比较字符串的内容是否相同 判断账号和密码
public static boolean eqals(String str1, String str2) {
boolean flag = true;
// 遍历两个字符串,比较长度以及比较内容
if (str1.length() != str2.length()) {
flag = false;
} else {
for (int i = 0; i < str1.length(); i++) {
if (str1.charAt(i) != str2.charAt(i)) {
flag = false;
break;
}
}
}
// 返回值
return flag;
}
// boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写 判断验证码
public static boolean equalsIgnoreCase(String str1, String str2) {
// 忽略大小写,大写-32即是小写,需要提取字符串中的英文字母
boolean flag = true;
if (str1.length() != str2.length()) {
flag = false;
} else {
for (int i = 0; i < str1.length(); i++) {
if (str1.charAt(i) >= 'A' && str1.charAt(i) <= 'Z') {
if (str1.charAt(i) != str2.charAt(i) && str1.charAt(i) + 32 != str2.charAt(i)) {
flag = false;
break;
}
} else if (str1.charAt(i) >= 'a' && str1.charAt(i) <= 'z') {
if (str1.charAt(i) != str2.charAt(i) && str1.charAt(i) - 32 != str2.charAt(i)) {
flag = false;
break;
}
} else {
if (str1.charAt(i) != str2.charAt(i)) {
flag = false;
break;
}
}
}
}
return flag;
}
// boolean startsWith(String str):判断字符串对象是否以指定的str开头 判断姓名的姓氏
public static boolean startsWith(String str1, String str2) {
// 就是判断str1的开头是否是str2,遍历字符串,查看在str2的长度中是否是相等的
boolean flag = true;
if (str1.length() < str2.length()) {
flag = false;
} else {
for (int i = 0; i < str2.length(); i++) {
if (str1.charAt(i) != str2.charAt(i)) {
flag = false;
break;
}
}
}
return flag;
}
// boolean endsWith(String str):判断字符串对象是否以指定的str结尾 判断后缀
public static boolean endsWith(String str1, String str2) {
// 将str2遍历与str1.length()-1-str2.length比较
boolean flag = true;
if (str1.length() < str2.length()) {
flag = false;
} else {
for (int i = 0; i < str2.length(); i++) {
if (str1.charAt(str1.length() - str2.length() + i) != str2.charAt(i)) {
flag = false;
break;
}
}
}
return flag;
}
// int indexOf(String str):获取str在字符串对象中第一次出现的索引
// 首先判断是否有相同的,如果有则将当时的x-str2的长度
public static int indexOf(String str1, String str2) {
int index = -1;
if (str1.length() < str2.length()) {
return index;
} else {
for (int x = 0; x < str1.length() - str2.length(); x++) {
boolean flag = true;
for (int i = 0; i < str2.length(); i++) {
if (str1.charAt(x + i) != str2.charAt(i)) {
flag = false;
}
}
if (flag == true) {
index = x;
}
}
}
return index;
}
// String substring(int start):从start开始截取字符串
public static String substring(String str1, int start) {
// 创建一个字符串类型,内容为空
String str2 = "";
for (int i = 0; i < str1.length(); i++) {
if (i >= start) {
str2 += str1.charAt(i);
}
}
return str2;
}
// String substring(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end
public static String substring(String str1, int start, int end) {
String str2 = "";
for (int i = 0; i < str1.length(); i++) {
if (i >= start && i < end) {
str2 += str1.charAt(i);
}
}
return str2;
}
// char[] toCharArray():把字符串转换为字符数组
public static char[] toCharArray(String str1) {
char[] chs = new char[str1.length()];
for (int i = 0; i < str1.length(); i++) {
chs[i] = str1.charAt(i);
}
return chs;
}
// String toUpperCase():把字符串转换为大写字符串
public static String toUpperCase(String str1) {
String str = "";
char[] ch = new char[str1.length()];
for (int i = 0; i < str1.length(); i++) {
ch[i] = str1.charAt(i);
if (str1.charAt(i) <= 'z' && str1.charAt(i) >= 'a') {
ch[i] -= 32;
}
str += ch[i];
}
return str;
}
// String toLowerCase():把字符串转换为小写字符串
public static String toLowerCase(String str1) {
String str = "";
char[] ch = new char[str1.length()];
for (int i = 0; i < str1.length(); i++) {
ch[i] = str1.charAt(i);
if (str1.charAt(i) <= 'Z' && str1.charAt(i) >= 'A') {
ch[i] += 32;
}
str += ch[i];
}
return str;
}
// String trim(): 去除字符串两端空格
public static String trim(String str1) {
// 分析:每次判断索引0以及索引str1.length-1的值是否为空格,是的话就删除,生成新的字符串继续
while (true) {
char[] chs = new char[str1.length()];
for (int x = 0; x < str1.length(); x++) {
chs[x] = str1.charAt(x);
}
String str2 = "";
if (chs[0] == ' ') {
for (int x = 0; x < chs.length; x++) {
if (x > 0 && x < chs.length - 1) {
str2 += chs[x];
} else if (chs[chs.length - 1] != ' ') {
str2 += chs[chs.length - 1];
}
}
str1 = str2;
} else {
if (chs[chs.length - 1] != ' ') {
break;
} else {
for (int x = 0; x < chs.length; x++) {
if (x < chs.length - 1) {
str1 += chs[x];
}
}
str1 = str2;
}
}
}
return str1;
}
// String[] split(String str): 按照指定符号分割字符串,no
public static String[] split(String str1, char chs) {
// 首先遍历字符串,找出分隔符的个数,数组长度为分隔符+1
int count = 0;
for (int i = 0; i < str1.length(); i++) {
if (chs == str1.charAt(i)) {
count++;
}
}
String[] strArray = new String[count + 1];
count = 0;
// 创建一个字符串数组
while (true) {
// 创建一个stringBuild
StringBuilder sb = new StringBuilder();
int index = -1;
for (int j = 0; j < str1.length(); j++) {
if (str1.charAt(j) == chs) {
index = j;
break;
}
}
if (index == -1) {
strArray[count] = str1;
break;
} else {
String str2 = "";
for (int i = 0; i < str1.length(); i++) {
if (i < index) {
str2 += str1.charAt(i);
} else if (i > index) {
sb.append(str1.charAt(i));
}
}
strArray[count] = str2;
str1 = sb.toString();
count++;
}
}
return strArray;
}
// String receplace(String oldStr,String newStr) : 使用newString替换oldStr
/*
* 分析:找到第一次出现的索引,将新的替换旧的,这时候继续找第一次出现的索引
*/
public static String receplace(String str1, String oldStr, String newStr) {
while (true) {
int index = -1;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str1.length() - oldStr.length() + 1; i++) {
boolean isok = true;
for (int j = 0; j < oldStr.length(); j++) {
if (str1.charAt(i + j) != oldStr.charAt(j)) {
isok = false;
}
}
if (isok) {
index = i;
}
}
if (index == -1) {
return str1;
} else {
for (int x = 0; x < index; x++) {
sb.append(str1.charAt(x));
}
sb.append(newStr);
for (int x = index + oldStr.length(); x < str1.length(); x++) {
sb.append(str1.charAt(x));
}
str1 = sb.toString();
}
}
}
public static boolean eqals(String str1, String str2) {
boolean flag = true;
// 遍历两个字符串,比较长度以及比较内容
if (str1.length() != str2.length()) {
flag = false;
} else {
for (int i = 0; i < str1.length(); i++) {
if (str1.charAt(i) != str2.charAt(i)) {
flag = false;
break;
}
}
}
// 返回值
return flag;
}
// boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写 判断验证码
public static boolean equalsIgnoreCase(String str1, String str2) {
// 忽略大小写,大写-32即是小写,需要提取字符串中的英文字母
boolean flag = true;
if (str1.length() != str2.length()) {
flag = false;
} else {
for (int i = 0; i < str1.length(); i++) {
if (str1.charAt(i) >= 'A' && str1.charAt(i) <= 'Z') {
if (str1.charAt(i) != str2.charAt(i) && str1.charAt(i) + 32 != str2.charAt(i)) {
flag = false;
break;
}
} else if (str1.charAt(i) >= 'a' && str1.charAt(i) <= 'z') {
if (str1.charAt(i) != str2.charAt(i) && str1.charAt(i) - 32 != str2.charAt(i)) {
flag = false;
break;
}
} else {
if (str1.charAt(i) != str2.charAt(i)) {
flag = false;
break;
}
}
}
}
return flag;
}
// boolean startsWith(String str):判断字符串对象是否以指定的str开头 判断姓名的姓氏
public static boolean startsWith(String str1, String str2) {
// 就是判断str1的开头是否是str2,遍历字符串,查看在str2的长度中是否是相等的
boolean flag = true;
if (str1.length() < str2.length()) {
flag = false;
} else {
for (int i = 0; i < str2.length(); i++) {
if (str1.charAt(i) != str2.charAt(i)) {
flag = false;
break;
}
}
}
return flag;
}
// boolean endsWith(String str):判断字符串对象是否以指定的str结尾 判断后缀
public static boolean endsWith(String str1, String str2) {
// 将str2遍历与str1.length()-1-str2.length比较
boolean flag = true;
if (str1.length() < str2.length()) {
flag = false;
} else {
for (int i = 0; i < str2.length(); i++) {
if (str1.charAt(str1.length() - str2.length() + i) != str2.charAt(i)) {
flag = false;
break;
}
}
}
return flag;
}
// int indexOf(String str):获取str在字符串对象中第一次出现的索引
// 首先判断是否有相同的,如果有则将当时的x-str2的长度
public static int indexOf(String str1, String str2) {
int index = -1;
if (str1.length() < str2.length()) {
return index;
} else {
for (int x = 0; x < str1.length() - str2.length(); x++) {
boolean flag = true;
for (int i = 0; i < str2.length(); i++) {
if (str1.charAt(x + i) != str2.charAt(i)) {
flag = false;
}
}
if (flag == true) {
index = x;
}
}
}
return index;
}
// String substring(int start):从start开始截取字符串
public static String substring(String str1, int start) {
// 创建一个字符串类型,内容为空
String str2 = "";
for (int i = 0; i < str1.length(); i++) {
if (i >= start) {
str2 += str1.charAt(i);
}
}
return str2;
}
// String substring(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end
public static String substring(String str1, int start, int end) {
String str2 = "";
for (int i = 0; i < str1.length(); i++) {
if (i >= start && i < end) {
str2 += str1.charAt(i);
}
}
return str2;
}
// char[] toCharArray():把字符串转换为字符数组
public static char[] toCharArray(String str1) {
char[] chs = new char[str1.length()];
for (int i = 0; i < str1.length(); i++) {
chs[i] = str1.charAt(i);
}
return chs;
}
// String toUpperCase():把字符串转换为大写字符串
public static String toUpperCase(String str1) {
String str = "";
char[] ch = new char[str1.length()];
for (int i = 0; i < str1.length(); i++) {
ch[i] = str1.charAt(i);
if (str1.charAt(i) <= 'z' && str1.charAt(i) >= 'a') {
ch[i] -= 32;
}
str += ch[i];
}
return str;
}
// String toLowerCase():把字符串转换为小写字符串
public static String toLowerCase(String str1) {
String str = "";
char[] ch = new char[str1.length()];
for (int i = 0; i < str1.length(); i++) {
ch[i] = str1.charAt(i);
if (str1.charAt(i) <= 'Z' && str1.charAt(i) >= 'A') {
ch[i] += 32;
}
str += ch[i];
}
return str;
}
// String trim(): 去除字符串两端空格
public static String trim(String str1) {
// 分析:每次判断索引0以及索引str1.length-1的值是否为空格,是的话就删除,生成新的字符串继续
while (true) {
char[] chs = new char[str1.length()];
for (int x = 0; x < str1.length(); x++) {
chs[x] = str1.charAt(x);
}
String str2 = "";
if (chs[0] == ' ') {
for (int x = 0; x < chs.length; x++) {
if (x > 0 && x < chs.length - 1) {
str2 += chs[x];
} else if (chs[chs.length - 1] != ' ') {
str2 += chs[chs.length - 1];
}
}
str1 = str2;
} else {
if (chs[chs.length - 1] != ' ') {
break;
} else {
for (int x = 0; x < chs.length; x++) {
if (x < chs.length - 1) {
str1 += chs[x];
}
}
str1 = str2;
}
}
}
return str1;
}
// String[] split(String str): 按照指定符号分割字符串,no
public static String[] split(String str1, char chs) {
// 首先遍历字符串,找出分隔符的个数,数组长度为分隔符+1
int count = 0;
for (int i = 0; i < str1.length(); i++) {
if (chs == str1.charAt(i)) {
count++;
}
}
String[] strArray = new String[count + 1];
count = 0;
// 创建一个字符串数组
while (true) {
// 创建一个stringBuild
StringBuilder sb = new StringBuilder();
int index = -1;
for (int j = 0; j < str1.length(); j++) {
if (str1.charAt(j) == chs) {
index = j;
break;
}
}
if (index == -1) {
strArray[count] = str1;
break;
} else {
String str2 = "";
for (int i = 0; i < str1.length(); i++) {
if (i < index) {
str2 += str1.charAt(i);
} else if (i > index) {
sb.append(str1.charAt(i));
}
}
strArray[count] = str2;
str1 = sb.toString();
count++;
}
}
return strArray;
}
// String receplace(String oldStr,String newStr) : 使用newString替换oldStr
/*
* 分析:找到第一次出现的索引,将新的替换旧的,这时候继续找第一次出现的索引
*/
public static String receplace(String str1, String oldStr, String newStr) {
while (true) {
int index = -1;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str1.length() - oldStr.length() + 1; i++) {
boolean isok = true;
for (int j = 0; j < oldStr.length(); j++) {
if (str1.charAt(i + j) != oldStr.charAt(j)) {
isok = false;
}
}
if (isok) {
index = i;
}
}
if (index == -1) {
return str1;
} else {
for (int x = 0; x < index; x++) {
sb.append(str1.charAt(x));
}
sb.append(newStr);
for (int x = index + oldStr.length(); x < str1.length(); x++) {
sb.append(str1.charAt(x));
}
str1 = sb.toString();
}
}
}
阅读全文
0 0
- 新人练习之只使用String.length和String.CharAt();来完成常用StringAPI的编写
- String类常用的成员方法length()和charAt()
- StringAPI String和StringBuffer之间的区别
- android String.charAt的使用
- String.charAt()
- String类常用方法之charAt()、codePointAt()示例
- String类常用方法之charAt()、codePointAt()示例
- string的size()和length()
- string的size()和length()
- string的size()和length()
- string的size()和length()
- string的size()和length()
- string的size()和length()
- String类中的IndexOf和CharAt的区别
- javascript中 string的charAt()和charCodeAt()方法
- 编写函数strndel,参量是一个字符串string和两个整数start、length。在string中删除start开始的length个字符,最后返回string。
- 【leetcode】java String.charAt()
- Java String charAt()方法
- Concurrent.util 常用类的介绍和使用
- java工程师面试题_2年经验
- 对象池实操(一)_发射子弹简单演示
- UVALive
- 吴锦华/明鑫: 用户态文件系统(FUSE)框架分析和实战
- 新人练习之只使用String.length和String.CharAt();来完成常用StringAPI的编写
- NOWCODER Treepath (树dp水题)
- H5的新特性
- Sublime Text3 3143 注册码,亲测可用!
- NYOJ的矩形嵌套问题
- Django框架下使用ajax模拟用户登录验证
- 2017.10.14
- 网页爬虫--scrapy进阶
- 【JavaEE学习笔记】XML_概述,DOM4J解析器,Pull解析器,DOM4J增删改,xPath