[数据结构] 字符串操作

在JAVA语言中,字符串数据实际上由String类所实现的。Java字符串类分为两类:一类是在程序中不会被改变长度的不变字符串;二类是在程序中会被改变长度的可变字符串。Java环境为了存储和维护这两类字符串提供了 String和StringBuffer两个类。

String的一些常用操作

字符串创建

String str="This is a String";

或者

String str=new String("This is a String");

  第一种的的效率比较高,详细的可以看:

  String、StringBuffer与StringBuilder区别和联系(源码)

字符串长度

String str= "This is a String";
int len =str.length();

指定字符或子字符串的位置

String str="Thisis a String";
Int index1 =str.indexOf("i");   //2
Int index2=str.lastIndexOf("i"); //12

判断两个字符串是否相等

String str="This is a String";
Boolean result=str.equals("This is another String");

得到指定位置的字符

String str="This is a String";
char chr=str.charAt(3);

截取子字符串

str=str.substring(int beginIndex);

 截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str;  

str=str.substring(int beginIndex,int endIndex);

 截取str中从beginIndex开始至endIndex结束时的字符串,并将其赋值给str;

字符串合并

String str="This is a String";
String str1=str.concat("Test"); //str1="This is a String Test"

字符串大小写的转换

str.toLowerCase(); 

大写转小写

str.toUpperCase(); 

小写转大写

去掉字符串中开头和结尾处的空格

String str="This is a String   ";
String str1=str.trim();   //str1="This is a String"

StringBuffer的一些常用操作

初始化

 StringBuffer s = new StringBuffer();

这样初始化出的StringBuffer对象是一个空的对象。

如果需要创建带有内容的StringBuffer对象,则可以使用:

StringBuffer s = new StringBuffer(“abc”);

append方法

  追加内容到当前StringBuffer对象的末尾,类似于字符串的连接。调用该方法以后,StringBuffer对象的内容也发生改变。

StringBuffer sb = new StringBuffer(“abc”);
  sb.append(true);

对象sb的值将变成”abctrue”

deleteCharAt方法

删除指定位置的字符,然后将剩余的内容形成新的字符串

StringBuffer sb = new StringBuffer(“Test”);
 sb. deleteCharAt(1);

对象sb的值变为”Tst”

还存在一个功能类似的delete方法:

public StringBuffer delete(int start,int end)

该方法的作用是删除指定区间以内的所有字符,包含start,不包含end索引值的区间。

insert方法

在StringBuffer对象中插入内容,然后形成新的字符串。

   StringBuffer sb = new StringBuffer(“TestString”);
  sb.insert(4,false);

在对象sb的索引值4的位置插入false值,形成新的字符串,则执行以后对象sb的值是”TestfalseString”。

reverse方法

将StringBuffer对象中的内容反转,然后形成新的字符串

 StringBuffer sb = new StringBuffer(“abc”);
 sb.reverse();

对象sb中的内容将变为”cba”

setCharAt方法

修改对象中指定索引值位置的字符为新的字符

 StringBuffer sb = new StringBuffer(“abc”);
 sb.setCharAt(1,’D’);

sb的值将变成”aDc”

trimToSize方法

将StringBuffer对象的中存储空间缩小到和字符串长度一样的长度,减少空间的浪费。

常见问题

int age = Integer.parseInt("10");
long id = Long.parseLong("190"); // 假如值可能很大.

  非常大的数字请使用Long

  • 通过空白字符拆分字符串
String[] strArray = aString.split("\\s+");  

  String 的 split()方法接收的字符串会被当做正则表达式解析, 

  

  “\s”代表空白字符,如空格” “(tab制表符”\t”, 换行”\n”,回车”\r”)

  而编译器在对源代码解析时,也会进行一次字面量转码,所以需要”\s”.

  • 将String转换为日期
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String str = "2016-05-07";
Date date = format.parse(str);
System.out.println(format.format(date));
时间: 2024-10-25 02:32:51

[数据结构] 字符串操作的相关文章

数据结构——算法之(012)( linux C 所有字符串操作函数实现)

题目:实现linux C下常用的字符串操作函数 题目分析: 一.面试中可能经常遇到这样的问题:比如strcpy.memcpy.strstr 二.参考了linux 内核代码,对linux大神表示感谢,代码写得相当精致,这里拿来与大家分享吧 算法实现: /* * linux/lib/string.c * * Copyright (C) 1991, 1992 Linus Torvalds */ /* * stupid library routines.. The optimized versions

面试之C语言字符串操作总结大全(转载)

趁着十一就好好补补数据结构吧,通信这个不软不硬的专业,现在还是得好好学学补习补习,,你这个非211的本科生!虽然拿到了一个offer,但是觉得时间还有,得继续拼一拼,希望不辜负! 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符

数据结构-字符串的排列

题目:输入 一个字符串,打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a.b.c所能排列出来的所有字符串abc,acb,bac,bca,cab,cba 分析:这个题目完全不会.根据标案分析发现一些细节需要注意,char* 和char[]的区别. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

条件、循环、函数定义、字符串操作练习

注意标准库的两种导入与使用方式,建议大家采用<库名>.<函数名>的方式. 对前面的代码进行优化,用for,while,if,def实现: 用循环画五角星 1 import turtle 2 3 turtle.fillcolor("red") 4 turtle.begin_fill() 5 for i in range(5): 6 turtle.forward(100) 7 turtle.right(144) 8 turtle.end_fill() 用循环画同心圆

PHP字符串操作大集合

字符串的处理非常重要.文本字符串中的空格或者其他没有意义的符号.例如,在一个电子商务应用中,当用户填写订单的内容时(如联系地址),可能输入一些空格.句号等PHP4及以上版本提供了4个去除字符串str首尾处空格或其他特殊符号.     string ltrim(string str [, string charlist]):去除字符串str尾的空格或其他特殊符号.     string chop(string str [, string charlist]):功能同rtrim(). 以上函数的第1

C语言难点1之输入输出,链接,字符串操作

C语言难点1之输入输出,链接,字符串操作 最近发现写了一段时间的C之后,还是有一些点并没有很好的get,我就想总结出来,写个系列博客,自己也好好的整理一下思路.这个系列主要出自三本书:<C专家编程>,<C陷阱和缺陷>,<C和指针>.有兴趣的同学可以好好看一下这几本书,对于打好C语言的基础是个非常不错的几本书. 1 一些输入输出的格式 对应的printf():和scanf()函数:在这里我给出常用的scanf格式码,和printf()函数也是一样的. 2 getchar(

C语言字符串操作总结大全(超详细)

1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1

linux shell 字符串操作(长度,查找,替换)详解

原文地址:http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同     ${var-DEFAULT}

c语言中字符串操作的工具类

 1.编写头文件 #define _CRT_SECURE_NO_WARNINGS //#pragmawarning(disable:4996) #include <stdio.h> #include <stdlib.h> #include <string.h> struct CString { char *p;        //保存字符串首地址 int reallength; //实际长度 }; typedef struct CString mystring;//