Java字符串操作及与C#字符串操作的不同

每种语言都会有字符串的操作,因为字符串是我们平常开发使用频率最高的一种类型。今天我们来聊一下Java的字符串操作及在某些具体方法中与C#的不同,对于需要熟悉多种语言的人来说,作为一种参考。进行诫勉

首先,什么是字符串?

字符串是字符的序列,是作为一种对象而存在。说的直白点,字符串就是一些字符的组合,从而构成字符串,例如“abc”就是字符串,"郭志奇"也是一种赐福穿。

我们知道,Java是一种面向对象的高级程序语言。所有事物均为对象,字符串也不例外,也是一种对象,其对应类型为String。

下面,我们分几种情况来进行说明字符串:

  1. 字符串的创建
  2. 字符串操作
    1. 字符串连接
    2. 字符串长度
    3. 字符串查找
    4. 获取指定索引的字符
    5. 去重空格
    6. 判断相等
    7. 大小写转换
    8. 字符串分隔
    9. 字符串比较

字符串创建

字符串必须先声明并进行初始化,才能使用,否则编译器会报出 变量未初始化错误。

请注意:Java中字符串定义的类型为String(第一个字母大写),对于C#程序员来说,看着不太舒服,因为c#中字符串定义为string (第一个字母小写),但C#中也是有String类的

创建字符串也分几种方式,可以根据需求灵活组织:

String(char a[])--Java代码

String(char a[],int offset,int length)--Java代码

字符串常量:

String source=“郭志奇”;

此处简单提一下,Java中双等号== 表示的是引用是否相同,equals比较的是实际的字符串值。

对应的C#代码

在C#中双等号以及equals比较的是实际的值,而refreshEquals比较的是引用是否相同。和Java略有不同。

字符串操作

         String source = "郭志奇";
String source2 = "郭语晨";
String source3 = source + source2;
System.out.println(source3);// 输出郭志奇郭语晨
String source4 = source + 521;// 字符串与数字拼接
System.out.println(source4);//输出郭志奇521
         String source = "郭志奇";
String source2 = "郭语晨";
String source5 = source.concat(source2);
System.out.println(source5);// 输出郭志奇郭语晨
         String source = "     郭志奇 ";//前缀包含一个空格及一个tab 后缀包含一个空格
System.out.println(source.length());// 输出6
             string source = "   郭志奇 ";
Console.WriteLine(source.Length);//输出7
         String source = "郭志奇";
System.out.println(source.indexOf("郭"));// 输出0
System.out.println(source.indexOf(""));// 输出0
         String source = "郭志奇";
System.out.println(source.lastIndexOf("郭"));// 输出0
System.out.println(source.lastIndexOf(""));// 输出3
             string source = "郭志奇";
Console.WriteLine(source.Length);//输出3
Console.WriteLine(source.LastIndexOf(""));//输出2
Console.Read();
         String source = "郭志奇";
System.out.println(source.charAt(0));//输出郭
System.out.println(source.charAt(source.length() - 1));//输出奇
         String source = "郭志奇";
System.out.println(source.charAt(-1));
System.out.println(source.charAt(source.length() + 11));
         String source = " 郭志奇  ";// 前后都有空格
String source1 = " 郭志奇 ";
System.out.println(source.length());
System.out.println(source.trim().length());
System.out.println(source1.length());
System.out.println(source1.trim().length());
         String source = new String("郭志奇A");
String source1 = new String("郭语晨");
String source2 = "郭志奇A";
String source3 = "郭语晨"; String source4 = "郭志奇a"; System.out.println(source == source2);// false
System.out.println(source.equals(source2));// true
System.out.println(source1 == source3);// false
System.out.println(source1.equals(source3));// true System.out.println(source == source4);// false
System.out.println(source.equals(source4));// false
System.out.println(source.equalsIgnoreCase(source4));// true

compareTo方法会逐个字符进行比较,如果源字符串比目标字符串大,那么返回正整数;如果源字符串与目标字符串相同,那么返回0;如果源字符串比目标字符串小,那么返回负数。

请注意:

1、返回值为0,那么字符串通过equals比较会相同

2、返回值正整数、负数,是源字符串不同的字符相减所得。

字符串使我们日常开发使用频率最高的类型,因此要数量掌握字符串的各种操作,以及一些坑点,才能在编码中轻松、愉快的避免各种bug的出现。

本次说明只介绍了字符串的冰山一角,对于更重要的字符串格式化,本次没有涉及,因为蛋蛋字符串格式化,就可以单独写一篇更长的博文才能说明。下次再聊。