【Java学习日记】#1 从字符串开始 字符串的创建及字符串的相关方法(1)

说在前面

从这里开始记录我的从零开始学习Java的记录。算是一种学习笔记吧,也是为了督促自己学习。刚经历了比较受打击的一件事,大类招生专业分流时严重滑档,去了不想去的专业,反省了很久,确实大一不太上心。事实上对大类招生的同学来说,大一一整年,都不是可以考试后放松的一年,也叫做“高四”吧。这点现在才想通确实很晚,下学期想过弥补确实来不及了。
所以希望下学期转专业能顺利一点,从现在开始努力吧。
学过C语言,所以直接从字符串开始

String类

创建字符串

char a[]={'g','o','o','d'};
String s = new String(a);
//等价于
String s = new String("good");
char a[]={'g','o','o','d'};
String s = new String(a,13);
//等价于
String s = new String("ood");
//字符串常量
String str;
str = "We are students.";

连接多个字符串
“+” 加号就能实现

String s1 = new String("hello");
String s2 = new String("world");
String s = s1+" "+s2;
System.out.println(s);

这里值得一提的是System.out.println()在Eclipse中可以使用输入syso+Alt+/直接唤出
特别的,若要分成两行写,可以使用以下方法:

System.out.println("I like"+
"Java");

连接其他数据类型
如果两边一边是字符串,另一边是整形/浮点型变量
则他们与字符串相连时,会自动转换成字符串形式后相连
如果两边都是整形/浮点型变量,则会将他们直接相加

System.out.println("I am "+9+9);
System.out.println("I am "+(9+9));

第一行输出结果是 I am 99
第二行输出结果是 I am 18

有关方法

获取字符串长度 lenth()

String s = "I am good";
int l = s.length();
System.out.println(l);

输出结果为 9
字符串查找 indexOf() lastIndexOf()
(1)IndexOf(String str)

String s = "I am good";
int i = s.indexOf("a");
System.out.println(i);

输出结果为 2

String s = "I am good";
int i = s.indexOf("am ");
System.out.println(i);

输出结果为 2(待查找的字符串的第一个字符的位置)

(2)lastIndexOf(String str)
从右到左反向查找

String s = "I am good";
int i = s.indexOf("a");
System.out.println(i);

输出结果为 2

String s = "I am good";
int i = s.indexOf("am ");
System.out.println(i);

输出结果为 2待查找的字符串的第一个字符的位置
如果

获取子字符串 substring()
(1)substring(int beginindex)

返回从指定位置截取至字符串结尾的字符串

String s = "I am good";
String substr = s.substring(3);
System.out.println(substr);

输出结果为

m good

(2)substring(int beginIndex, int endIndex)
返回从开始位置到结束位置的字符串

String s = "I am good";
String substr = s.substring(0,3);
System.out.println(substr);

输出结果为

I am

去除空格 trim()
返回字符串的副本(忽略前导和尾部空格)

String s = "  I am good  ";
System.out.println(s.trim());
System.out.println(s.length());
System.out.println(s.trim().length());

输出结果为

I am good
13
9

字符串替换 replace()
将指定的字符或字符串替换成新的字符或字符串,返回替换后的字符串
//注意双引号
//严格区分大小写

String s = "I am good";
System.out.println(s.replace("a", "A"));

输出结果为

I Am good

判断字符串的开始和结尾 startsWith() endsWith()
(1)startsWith()

String s1 = "2333333";
boolean bt = s1.startsWith("23");
boolean bf = s1.startsWith("33");
String s2 = "I am good.";
boolean c1 = s2.startsWith("I");
boolean c2 = s2.startsWith("A");
System.out.println(bt);
System.out.println(bf);
System.out.println(c1);
System.out.println(c2);

输出结果是:

true
false
true
false

(2)endsWith()

String s1 = "2333333";
boolean bt = s1.endsWith("23");
boolean bf = s1.endsWith("33");
String s2 = "I am good.";
boolean c1 = s2.endsWith(".");
boolean c2 = s2.endsWith("A");
System.out.println(bt);
System.out.println(bf);
System.out.println(c1);
System.out.println(c2);

输出结果为:

false
true
true
false

判断字符串是否相等 equals() equalsIgnoreCase()
与C语言相同,字符串之间的比较不能直接用“==”
通过此符号比较得出的是两个字符串的地址是否相同

String s1 = new String("I am good.");
String s2 = new String("I am good.");
boolean b = (s1==s2);
System.out.println(b);

输出结果:

false

所以使用以下方法:
(1)equals()

String s1 = new String("I am good.");
String s2 = new String("I am good.");
boolean b = s1.equals(s2);
System.out.println(b);

输出结果:

true

(2)equalsIgnoreCase
不区分大小写

String s1 = new String("I am good.");
String s2 = new String("I Am good.");
boolean b = s1.equalsIgnoreCase(s2);
System.out.println(b);

输出结果:

true

比较两个字符串(按字典序比较Unicode值) compareTo

-前小于后 返回一个负整数
-前大于后 返回一个正整数
-相等返回零
(抽象理解为前减去后)

String s1 = new String("I am good.");
String s2 = new String("I Am good.");
int b = s1.compareTo(s2);
System.out.println(b);

输出结果为:

32

大小写转换 toLowerCase() toUpperCase()
(1)toLowerCase()
将字符串中的大写字符转换为小写字符,其他字符不做处理,返回原字符。

String s = new String("I aM good.");
String s1 = s.toLowerCase();
System.out.println(s1);

输出结果为:

i am good.

(2)toUpperCase()
将字符串中的小写字符转换为大写字符,其他字符不做处理,返回原字符。

String s = new String("I aM good.");
String s1 = s.toUpperCase();
System.out.println(s1);

输出结果为:

I AM GOOD.

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值