JAVA基础之四:字符串

原文链接:http://happyshome.cn/blog/java/basics/string.html


本文主要介绍了字符串的基本操作,以及字符串与基本类型的相互转换。

1. 前言

String是嵌入在双引号里的字符序列,例如:

String s1 = "Hi, This is a string!";
String s2 = ""                       // 空串

如果想输出特殊的控制字符,你需要使用反斜线\来进行转义,单引号不需要转义,例如:

String s3 = "A \"string\" nested \\inside\\ a string";
String s4 = "Hello, \u60a8\u597d!";   // "Hello, 您好!"
String s5 = "Hi, I'm a string!";      // 单引号

2. String和'+'运算符

在Java中,'+'是被重载的运算符,重载意味着对于不同类型有着不同的操作。

如果两个操作数都是数字(byte, short, int, long, float, double, char),'+'会执行加法运算,例如:

1 + 23
1.2 + 2.23.4
1 + 2.21.0 + 2.23.2

如果两个操作数是字符串,'+'会将两个字符串拼接在一起返回,例如:

"Hello" + "world""Helloworld"
"Hi" + ", " + "world" + "!""Hi, world!"

如果其中一个操作数是字符串,另外一个操作数是数字,'+'会首先将数字转化为字符串,之后进行字符串的拼接操作,例如:

"The number is " + 5"The number is " + "5""The number is 5"
"The average is " + average + "!" (suppose average=5.5) → "The average is " + "5.5" + "!""The average is 5.5!"
"How about " + a + b (suppose a=1, b=1) → "How about 11"

3. String操作

最常用的String操作:

  • length(): 返回字符串的长度。
  • charAt(int index): 返回某个字符的索引位置(索引位置是从0开始到length()-1结束)。
  • equals(): 常用来比较两个字符串文本内容是否相等,切忌请不要使用"==","=="比较的是引用。
举例说明:
String str = "Java is cool!";
System.out.println(str.length());                      // 返回int 13
System.out.println(str.charAt(2));                     // 返回char 'v'
System.out.println(str.charAt(5));                     // 返回char 'i'
 
// 比较两个字符串
String anotherStr = "Java is COOL!";
System.out.println(str.equals(anotherStr));            // 返回 boolean false
System.out.println(str.equalsIgnoreCase(anotherStr));  // 返回 boolean true
System.out.println(anotherStr.equals(str));            // 返回 boolean false
System.out.println(anotherStr.equalsIgnoreCase(str));  // 返回 boolean true

// 其它常用的方法
System.out.println(str.substring(0, 3));               // 返回String "Jav"
System.out.println(str.indexOf('a'));                  // 返回int 1
System.out.println(str.lastIndexOf('a'));              // 返回int 3
System.out.println(str.endsWith("cool!"));             // 返回boolean true
System.out.println(str.toUpperCase());                 // 返回新的String "JAVA IS COOL!"
System.out.println(str.toLowerCase());                 // 返回新的String "java is cool!"

4. Stirng和基本类型的转换

String转换为int/byte/short/long

可以使用Integer.parseInt(anIntStr),Byte.parseByte(aByteStr),  Short.parseShort(aShortStr),  Long.parseLong(aLongStr)进行相应的转换,需要注意的是字符串中包含非数字,运行时会抛出NumberFormatException异常,例如:

String inStr = "5566";
int number = Integer.parseInt(inStr);   // 返回int类型 
String转换为double/float

可以使用Double.parseDouble(aDoubleStr)或Float.parseFloat(aFloatStr)进行转换,例如:

String inStr = "55.66";
float aFloat = Float.parseFloat(inStr);         // 返回float类型
String转换为char

可以使用aStr.charAt(index)从字符串中提取单个字符,例如:

String msg = "101100111001!";
int pos = 0;
while (pos < msg.length()) {
   char binChar = msg.charAt(pos);
   .......
   ++pos;
}
String转换为boolean

可以使用Boolean.parseBoolean(aBooleanStr)将文本"true"或"false"转换为boolean类型的true或false,例如:

String boolStr = "true";
boolean done = Boolean.parseBoolean(boolStr);  // 返回boolean类型
基本类型(int/double/float/byte/short/long/char/boolean)转换为String

可以使用'+'操作符: 基本类型变量+ 空串(""), 或者使用String.valueOf(aPrimitve), 或者根据类型调用相应的方法进行转换: String.valueOf(aPrimitve),Integer.toString(anInt), Double.toString(aDouble),Character.toString(aChar),Boolean.toString(aBoolean)。

// 使用连接符'+',a适用于所有的基本类型
String s1 = 123 + "";                // int 123 -> "123"
String s2 = 12.34 + "";              // double 12.34 -> "12.34"
String s3 = 'c' + "";                // char 'c' -> "c"
String s4 = true + "";               // boolean true -> "true"
 
// String.valueOf(aPrimitive)同样适用于所有的基本类型 String s1 = String.valueOf(12345); // int 12345 -> "12345" String s2 = String.valueof(true); // boolean true -> "true" double d = 55.66; String s3 = String.valueOf(d); // double 55.66 -> "55.66"
// toString()适用于每个基本类型,但是要防止空指针的异常 String s4 = Integer.toString(1234); // int 1234 -> "1234" String s5 = Double.toString(1.23); // double 1.23 -> "1.23" char c1 = Character.toString('z'); // char 'z' -> "z" // char转换为String char c = 'a'; String s5 = c; // 编译错误 String s6 = c + ""; // 将char转换为String // boolean转换为String boolean done = false; String s7 = done + ""; // boolean false -> "false" String s8 = Boolean.toString(done); String s9 = String.valueOf(done);
char转换为int

如果想将char'0'到'9'转换为int0到9,可以用该字符减去'0'即可,例如'8' - '0'  → 8。

分享

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值