`
zhangyang520
  • 浏览: 4141 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

字符串的相关总结

阅读更多

字符串中的一些功能函数的总结:

 

1:字符串类的特点:

  1.1字符串的创建方式:

     ·通过直接的赋值

       例子:String s1=adc;

       其实就是将abc放入常量池中,如果下一次进行创建字符串对象时,如果发现常量池中有相应的数据,就不进行创建。直接用

     ·通过new

       例子:String s2=new String(abc)

 String s3=s2.intern(); //如果池子中有该对象,那么引用池子中的变量,如果没    //有,就讲该对象放入到池子中。

       创建两个对象一个new一个字符串对象在堆内存中。

 

2:字符串类的一些常用方法

 

 * 按照面向对象的思想对字符串进行功能分类。

 * "abcd"

 * 

 * 1,获取:

 * 1.1 获取字符串中字符的个数(长度).

 *  int length();

 * 1.2 根据位置获取字符。

 *  char charAt(int index);

 * 1.3 根据字符获取在字符串中的第一次出现的位置.

 *  int indexOf(int ch)

 *  int indexOf(int ch,int fromIndex):从指定位置进行ch的查找第一次出现位置 

 *  int indexOf(String str);

 *  int indexOf(String str,int fromIndex);

 *   根据字符串获取在字符串中的第一次出现的位置.

 *  int lastIndexOf(int ch)

 *  int lastIndexOf(int ch,int fromIndex):从指定位置进行ch的查找第一次出现位置 

 *  int lastIndexOf(String str);

 *  int lastIndexOf(String str,int fromIndex);

 * 1.4 获取字符串中一部分字符串。也叫子串.

 *  String substring(int beginIndex, int endIndex)//包含begin 不包含end 

 *  String substring(int beginIndex);

 * 

 * 

 * 

 * 2,转换。

 *  2.1 将字符串变成字符串数组(字符串的切割)

 *  String[]  split(String regex):涉及到正则表达式.

 *  2.2 将字符串变成字符数组。

 *  char[] toCharArray();

 *  2.3 将字符串变成字节数组。

 *  byte[] getBytes();

 *  2.4 将字符串中的字母转成大小写。

 *  String toUpperCase():大写

 *  String toLowerCase():小写

 * 2.5  将字符串中的内容进行替换

 * String replace(char oldch,char newch);

 *  String replace(String s1,String s2);

 *  2.6 将字符串两端的空格去除。

 *  String trim();

 *  2.7 将字符串进行连接 。

 *  String concat(string);

 * 

 * 3,判断

 *  3.1 两个字符串内容是否相同啊?

 *  boolean equals(Object obj);

 *  boolean equalsIgnoreCase(string str);忽略大写比较字符串内容。

 *  3.2 字符串中是否包含指定字符串?

 *  boolean contains(string str);

 *  3.3 字符串是否以指定字符串开头。是否以指定字符串结尾。

 *  boolean startsWith(string);

 *  boolean endsWith(string);

 * 

 * 4,比较。

               4.1 compareTo(String ) 按照字典的顺序进行比较,返回的是正负数

       

       注意:

intern(): 对字符串池进行操作的 

 

  2:对字符串数组中的一些操作:

   2.1对字符串数组进行排序:

       

 

class StringSort{

 

public static void main(String[] args)

{

String[] strs={"acd","ds","re","cds","redf","eres"};

System.out.println("排序前:");

printArray(strs);

arraySort(strs);

System.out.println("排序后:");

printArray(strs);

}

 

//打印数组

public static void printArray(String[] strs)

{

//省略了对字符串数组进行有效性检查

System.out.print("[");

for(int i=0;i

{

if(i!=strs.length-1)

   System.out.print(strs[i]+",");

else

   System.out.print(strs[i]+"]\n");

}

}

 

//对字符串数组进行排序

public static void arraySort(String[] strs)

{

for(int i=0;i

{

for(int j=i+1;j

{

if(strs[i].compareTo(strs[j])>0)

{

swap(strs,i,j);

}

}

}

}

 

//对字符串数组中的两个位置的字符串进行交换

public static void swap(String []strs,int i,int j){

String temp=strs[i];

strs[i]=strs[j];

strs[j]=temp;

}

}

 

2:对字符串中进行查找某个子串出现的次数:

 

 

class StringFind

{

public static void main(String[] args)

{

 

String str1="nbaafjsnbadjkfnbadsjkjnba";

String str2="nba";

 

int count=stringFind_1(str1,str2);

System.out.println("字符串"+str1+"中出现"+str2+"的次数是:"+count);

}

 

 

//进行查找的函数

public static int stringFind_1(String str1,String str2)

{

//定义角标和定义次数

int index=0,count=0;

  while((index=str1.indexOf(str2))!=-1)

{

str1=str1.substring(index+str2.length());

count++;

}

return count;

}

 

//进行查找的函数

public static int stringFind_2(String str1,String str2)

{

//定义角标和定义次数

int index=0,count=0;

  while((index=str1.indexOf(str2,index))!=-1)

{

index=index+str2.length();

count++;

}

return count;

}

}

 

 

3:进行匹配的字符串的最长的子串:

 

class StringMatch{

public static void main(String []args)

{

String str1="aewerwerfewf";

String str2="erwerew";

 

String str3=stringMatch(str1,str2);

System.out.println(str1+""+str2+"进行匹配的最大长度的子串是:"+str3);

}

 

public static String stringMatch(String str1,String str2)

{

for(int i=0;i

{

for(int a=0,b=str2.length()-i;b

{

String subs=str2.substring(a,b);

if(str1.contains(subs))

return subs;

}

}

return null;

}

}

 

 

4:进行模拟trim函数的功能:

  

 

class StringTrim{

public static void main(String[] args)

{

String str="  fefe   ";

str=stringTrim(str);

System.out.println("---"+str+"---");

}

 

public static void stringTrim(String str)

{

int start=0,end=str.length()-1;

 

while(str.charAt(start)=='' && start<=end )

{

start++;

}

while(str.charAt(end)=='' && start<=end )

{

end--;

}

return str.substring(start,end+1);

}

 

}

 

 

 

二:StringBuffer类:(保证线程的安全性)

                 

 

 变长数组的原理:

其实先初始化一个数组空间,然后进行计算,重新分配一个长度的数组空间,将原有的数组中的内容进行复制到新的数组空间上。

 

StringBuilder(无线程安全性)和StringBuffer的区别:

 

 

例子:

    package cn.itcast.p2.stringbuffer.test;

public class StringBuilderTest {

 

 

public static void main(String[] args) {

 

int[] arr = {3,1,5,3,8};

String s = arrayToString_2(arr);

 

System.out.println(s);

}

public static String arrayToString_2(int[] arr){

 

StringBuilder sb = new StringBuilder();

sb.append("[");

for (int i = 0; i < arr.length; i++) {

if(i!=arr.length-1)

sb.append(arr[i]+", ");

else

sb.append(arr[i]+"]");

}

return sb.toString();

}

 

 

public static String arrayToString(int[] arr){

String str = "[";

for (int i = 0; i < arr.length; i++) {

if(i!=arr.length-1)

str+=arr[i]+", ";

else

str+=arr[i]+"]";

}

return str;

}

}

分享到:
评论

相关推荐

    Javascript中字符串相关常用的使用方法总结

    ### JavaScript中字符串相关常用的使用方法总结 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,被大量应用于Web开发之中。其中,字符串处理是非常重要的一个方面,涉及到数据的读取、修改、拼接等操作。...

    JavaScript的字符串相关总结

    前端知识 保持每天进步一点点。描述了字符串的函数用法,并举了三个小案例!

    字符串操作总结

    `string` 类还提供了以下几种方法来获取字符串的相关属性: 1. **获取容量**: ```cpp int capacity() const; ``` 返回字符串当前的容量,即无需重新分配内存即可容纳的字符数量。 2. **最大长度**: ```cpp ...

    十六进制字符串至普通转化_十六进制字符串转普通字符串_labview十六进制_

    本文将详细讲解如何使用LabVIEW实现十六进制字符串到普通字符串(通常指的是ASCII编码的字符字符串)的转换过程,并探讨相关的编程概念和技术。 首先,我们需要了解LabVIEW的数据类型。在LabVIEW中,字符串是由字符...

    Java中的字符串相关处理

    ### Java中的字符串相关处理 #### 引言 在Java编程语言中,字符串处理是一个核心且广泛使用的领域。不同于其他编程语言将字符串视为字符数组,Java将字符串视为`String`类型对象,这一设计使得字符串处理更加高效...

    字符串转ASCII ASCII转字符串

    总结,字符串转ASCII和ASCII转字符串是编程中常见的操作,主要涉及对字符和其对应的数字表示之间的转换。理解这些概念和实现方式对于理解和处理字符数据至关重要。通过学习不同编程语言中的相关函数和方法,你可以...

    字符串习题总结.rar

    下面我们将深入探讨一些常见的字符串相关知识点。 1. **字符串定义**:字符串是由一个或多个字符组成的序列,通常用引号括起来。在不同的编程语言中,如Python、Java、C++等,字符串有不同的表示方式。 2. **字符...

    易语言十六进制与字符串转换

    本文将深入探讨易语言中的十六进制与字符串之间的转换,并结合提供的源码,解析相关知识点。 首先,我们要理解十六进制(Hexadecimal)是一种逢16进1的数制,它使用16个符号(0-9及A-F)来表示数值。在计算机科学中...

    Java分割字符串

    在本文中,我们将深入探讨如何使用Java进行字符串分割,以及涉及到的相关知识点。 ### 1. `split()`方法介绍 `split()`方法根据给定的正则表达式将字符串分割成数组。它的基本语法如下: ```java public String[] ...

    微机原理课设字符串动画.docx

    本文档是关于微机原理课程设计的一份报告,主要涉及使用单片机实现字符串动画的显示。设计的主要目标包括创建一个包含输入字符串、动画显示和退出功能的菜单系统。用户可以输入自定义字符串,该字符串随后会在指定...

    C#操作字符串方法总结

    ### C#操作字符串方法总结 在C#编程语言中,字符串是极其常用的数据类型之一,它们用于存储文本信息。...以上方法是C#中最常用的一些字符串操作技巧,掌握了这些方法,可以在实际开发中更高效地处理字符串相关的任务。

    字符串的比较

    ### 字符串的比较 #### 一、基本概念 在计算机科学中,字符串是比较常见的数据类型之一,用于处理文本信息。对于字符串的操作包括但不...了解这些方法的工作原理有助于在实际编程中更高效地处理字符串相关的任务。

    ACM之字符串模板

    ACM 竞赛中常用的字符串类型数据结构模板是指一组预先设计好的函数和算法,用于解决字符串相关的问题。这些模板涵盖了字符串匹配、字符串搜索、子串出现次数统计等多种操作。 在 ACM 竞赛中,字符串类型数据结构...

    mysql分割字符串

    总结,MySQL提供了多种方式来处理字符串分割,包括`SUBSTRING_INDEX`、`FIND_IN_SET`以及正则表达式等。选择哪种方法取决于具体的需求和场景,例如数据的格式、分隔符的复杂性以及是否需要进行进一步的处理。了解...

    JavaScript判断一个字符串是否包含指定子字符串的方法

    总结来说,判断字符串是否包含指定子字符串,可以通过扩展String原型,使用正则表达式,或者直接使用ES6新增的`includes`方法来实现。在使用正则表达式时要小心特殊字符的影响。而现代的浏览器中,推荐使用`includes...

    易语言指针操作字符串和数组

    总结,易语言中的指针操作为字符串和数组的处理提供了强大的工具。通过理解指针的性质和使用方法,开发者可以编写出更高效、更灵活的代码。不过,指针操作也需要谨慎,合理地运用才能发挥其优势,避免潜在的风险。在...

    C++数据结构字符串及KMP匹配算法

    在实际编程中,理解并正确实现KMP算法对于解决字符串相关的问题至关重要。 总结来说,"C++数据结构字符串及KMP匹配算法"是一个关于C++编程和字符串处理的主题,涵盖了自定义字符串类的设计和实现,以及在字符串匹配...

    输入10个字符串到一个字符串数组

    根据给定的文件信息,我们可以总结出以下与Java编程相关的知识点: ### 1. Java基本概念及语法 #### 1.1 类与对象 - **类(Class)**:是对象的模板,定义了对象的属性和方法。例如,`Test20` 类和 `Exce2` 类。 -...

    数据库字符串相加---字符串相加函数

    此函数的主要目的是根据给定的`f_fileNo`值从`xcm_freight`表中检索所有相关的记录,并将这些记录中的`f_tgdd`字段值连接成一个字符串。 #### 3.2 代码分析 1. **函数创建前的检查**:首先,通过`IF EXISTS`语句...

Global site tag (gtag.js) - Google Analytics