String类

Java中String是作为一个类来处理

String类是一个final类,它没有子类。

String声明有两种方式:
1. String   str   =   “ABC”;  // 字符串常量,在常量池中
2. String   str1   =   new   String(“ABC”) //字符串对象,在堆内存中

 

Java会确保一个字符串常量只有一个拷贝
String s0=“Java”和String s1=“Java”指向同一个地址

new String() 创建的字符串不是常量有自己的地址空间

 

String类对象是一个常量对象,它的值不能被修改。

 

String str = "abc";
str
= "def";

 

String类的一些操作:

String类位于java.lang包中,具有丰富的方法
计算字符串的长度
连接字符串
比较字符串
提取字符串

 

代码
public static void main(String[ ] args) {
System.out.print(
"请随机输入你想到的名字: ");
Scanner input
= new Scanner(System.in);
String name
= input.next();
System.out.println(
"这个名字的长度是: \" " + name.length()+ "\" ");
}

 

输入的“Java”和“java”代表同一课程,如何解决?
使用equalsIgnoreCase()方法
结合toUpperCase()或toLowerCase()

 

 

if(favCourse1.equalsIgnoreCase(favCourse2)){
System.out.println(
"最喜欢的课程相同");
}
else{
System.out.println(
"最喜欢的课程不相同");
}

字符串连接

方法1:使用“+”

方法2:使用String类的concat()方法

A.concat(B);// B字符串将被连接到A字符串后面

 

使用作业提交系统提交Java作业,输入java源代码文件名,并输入自己的邮箱,提交前对Java文件名以及邮箱有效性进行检查。编码实现:

合法的文件名应该以.java结尾
合法的邮箱名中至少要包含“@”和“.”, 并检查“@”是否在“.”之前

方法

说明

public int indexOf(int ch)

搜索第一个出现的字符ch(或字符串value

public int indexOf(String value)

public int lastIndexOf(int ch)

搜索最后一个出现的字符ch(或字符串value

public int lastIndexOf(String value)

public int indexOf(int ch)返回出现第一个匹配的位置, 如果没有找到字符或字符串,则返回-1

方法

说明

public String substring(int index)

提取从位置索引开始的字符串部分

public String substring(int beginindex, int endindex)

提取beginindexendindex之间的字符串部分

public String trim()

返回一个前后不含任何空格的调用字符串的副本

 beginindex: 字符串的位置从0开始算;endindex: 字符串的位置从1开始算 也就是说前取后不取

代码
/**
*
@param args
*/
public static void main(String[] args) {
// 声明变量
boolean fileCorrect = false;
boolean emailCorrect = false;
System.out.println(
"---欢迎进入作业提交系统---");
Scanner input
= new Scanner(System.in);
System.out.println(
"请输入Java文件名: ");
String fileName
= input.next();
System.out.println(
"请输入你的邮箱");
String email
= input.next();

// 检查Java文件名
int index = fileName.lastIndexOf(".");
if (index != -1
&& index != 0
&& fileName.substring(index + 1, fileName.length()).equals("java")) {
fileCorrect
= true;
}
else {
System.out.println(
"文件名无效。");
}

// 检查你的邮箱格式
if (email.indexOf('@') != -1 && email.indexOf('.') > email.indexOf('@')) {
emailCorrect
= true;
}
else {
System.out.println(
"Email无效。");
}

// 输出检测结果
if (fileCorrect && emailCorrect) {
System.out.println(
"作业提交成功!");
}
else {
System.out.println(
"作业提交失败!");
}
}
boolean endsWith(String suffix) :是否以指定后缀结尾
String[] java.lang.String.split(String regex)// 以特定方式转化成为字符串数组。例如:

代码
public static void main(String[] args) {
String str
= "abcdefg";
String[] strs
= str.split("");// 将字符串以指定的正则表达式转换成为数组。
System.out.println(strs.length);// 8 因为从a的前面开始分割
for (String s : strs) {
System.out.print(s
+ ", ");
}

System.out.println();

char[] cs = str.toCharArray();
System.out.println(cs.length);
// 7
for (char c : cs) {
System.out.print(c
+ ", ");
}
}

 

posted @ 2010-12-22 10:14  meng72ndsc  阅读(252)  评论(0编辑  收藏  举报