字符串
字符串对象的创建
```Java
String s1 = "Hello";
String s1 = new String("Hello");
```
字符串常用方法
- equals:比较两个字符串内容是否相同
- equalsIgnoreCase:忽略大小写比较两个字符串内容是否相同
- compareTo:比较两个字符串的大小
- length:计算字符串的长度
- concat:字符串连接
- charAt:从字符串中取指定位置的字符
- indexOf/lastIndexOf:字符串的匹配
- trim:修剪字符串左右两端的空白
- toUpperCase/toLowerCase:将字符串变成大写/小写
- substring:从字符串中取指定位置的子串
- startsWith/endsWith:判断字符串是否以指定的字符串开头/结尾
- replace:将字符串中指定内容替换为另外的字符串
练习1:输入用户名和密码,验证用户身份。
package com.lovoinfo;
import java.util.Scanner;
/**
* 用户登录验证
* @author jackfrued
*
*/
public class Test03 {
/**
* 在数组中查找有没有指定的元素
* @param x 数组
* @param y 指定的元素
* @return 找到了返回元素在数组中的位置,没有找到返回-1
*/
public static int findUsername(String[] x, String y) {
for(int i = 0; i < x.length; i++) {
if(x[i].equals(y)) {
return i;
}
}
return -1;
}
public static void main(String[] args) {
String[] usernames = {"admin", "jack", "guest"};
String[] passwords = {"123456", "abcdefg", "000000"};
Scanner sc = new Scanner(System.in);
boolean isLogin = false; // 是否登录成功
do {
System.out.print("请输入用户名: ");
String username = sc.nextLine().trim();
System.out.print("请输入密码: ");
String password = sc.nextLine();
int index = findUsername(usernames, username);
if(index != -1) {
if(password.equals(passwords[index])) {
isLogin = true;
}
}
if(!isLogin) {
System.out.println("用户名或密码错误!!!");
}
} while (!isLogin);
// 登录成功就结束do...while循环显示欢迎信息
System.out.println("登录成功!欢迎使用本系统...");
sc.close();
}
}
练习2:跑马灯效果。
package com.lovoinfo;
public class Test04 {
public static void main(String[] args) throws InterruptedException {
String str = "欢迎来朗沃学习 ";
while(true) {
System.out.println(str);
str = str.substring(1) + str.charAt(0);
Thread.sleep(200);
}
}
}
练习3:实现字符串倒转、字符串去掉空格、字符串大小写互换的方法。
package com.lovoinfo;
public class Test05 {
/**
* 字符串倒转
* @param str 原来的字符串
* @return 倒转后的字符串
*/
public static String reverse(String str) {
String newStr = "";
for(int i = str.length() - 1; i >= 0; --i) {
newStr += str.charAt(i);
}
return newStr;
}
/**
* 修剪字符串中所有的空白字符
* @param str 原来的字符串
* @return 去掉空白字符后的字符串
*/
public static String trimAll(String str) {
String newStr = "";
for(int i = 0; i < str.length(); i++) {
if(str.charAt(i) != ' ') {
newStr += str.charAt(i);
}
}
return newStr;
}
/**
* 将字符串中的小写字母变大写,大写字母变小写
* @param str 原来的字符串
* @return 变换后的字符串
*/
public static String switchUpperLower(String str) {
String newStr = "";
for(int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if(ch >= 'A' && ch <= 'Z') {
ch += 32; // 相当于 ch = (char)(ch + 32);
}
else if(ch >= 'a' && ch <= 'z') {
ch -= 32; // 相当于 ch = (char)(ch - 32);
}
newStr += ch;
}
return newStr;
}
public static void main(String[] args) {
// hELLO, wORLD!
System.out.println(switchUpperLower("Hello, World!"));
System.out.println(reverse("hello")); // olleh
System.out.println(reverse("我爱你")); // 你爱我
System.out.println(reverse("i love you")); // uoy evol i
System.out.println(trimAll(" h e l l o ")); // hello
}
}
思维导图
我的体会
今天把前几天学的内容都过了一遍,把之前不明白的地方弄明白。还学了字符串的创建和使用,还有些字符串的常用方法。老师带着我们画了一张思维导图。一下就把所学的内容总结了起来。感觉还不错。