`
x125521853
  • 浏览: 72691 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

第六章 字符串

阅读更多

一:字符串

    字符窜是一个由零个或多个字符串组成的字符组成的字符序列。字符串不是一个简单的基本数据类型,也不是一个字符串数组。

    字符串变量使用String关键字来声明,表示该变量为字符串类型的变量。

    Java将字符串作为内置对象处理,提供了丰富的特性来处理字符串。

    字符串的创建:

     String str; //声明一个字符串变量的类型

     str ="abc"; //把一个字符串常量赋值给一个字符串变量str

    当把一个空字符串“”赋给字符串变量时,表示该字符串在内存中已经分配了空间。

   //文件名:StringDemo.java  

class StringDemo
{
	public static void main(String[] args)
	{
		String s; //定义一个字符串变量s
		s = "字符串示例."; //对于String类型的变量需要先初始化才能使用该变量,
		System.out.println(s);		
	}
}

 

二:字符串函数

    1.字符串的截取:

      即从某个字符串中,截取该字符串其中的一部分作为新的字符串操作。

      String类中substring函数可以实现字符串的截取,如

      方式一:String substring(int beginIndex);  //指定开始,一直到结尾

      方式二:String substring(int beginIndex int endIndex);  //指定开始位置和结束位置

      String为该函数的返回类型
      substring是函数名
      int beginIndex是开始的索引位置,包含该位置
      int endIndex 结束位置,不包含该位置

   //文件名:SubstringDemo.java    

class SubstringDemo
{
	public static void main(String[] args)
	{
		String s = "where are you come from?";

		//对字符串进行截取
		String subs1 = s.substring(0); //"where are you come from?";
		String subs2 = s.substring(1); //"here are you come from?";
		String subs3 = s.substring(0,5); // "where"
		String subs4 = s.substring(6,9);//"are"

		System.out.println(subs1);
		System.out.println(subs2);
		System.out.println(subs3);
		System.out.println(subs4);
	}
}

 

    2.字符串的查找

      就是在一个字符串中查找另一个字符串,String类提供字符串查找函数indexOf,这个函数的作用是返回指定子字符串在此字符串中第一次出现处的索引。

      str.indexOf(String substr)

      str.indexOf(String substr, int fromIndex)
      str表示任何一个字符串常量或者字符串变量。
      substr 表示要查找的内容。
      fromIndex 表示开始位置的索引, 如果省略掉此参数,表示从字符串的第一个字符开始搜索指定的字符串结果,如果没有找到指定的字符串, 则返回”-1”。

   //文件名:IndexOfString.java   

class IndexOfString 
{
	public static void main(String[] args) 
	{
		String s = "where are you come form?"; //目标字符串
		String s1 = "where"; //要查找的内容
		String s2 = "re";//要查找的内容

		//从开始位置查找where字个字符串
		int serFlg1 = s.indexOf(s1);
		System.out.println(serFlg1); //0
		
		//从索引为2的位置开始查找where这个字符串
		int serFlg2 = s.indexOf(s1, 2);
		System.out.println(serFlg2); //-1
		
		//查找"re"这个字符串
		int serFlg3 = s.indexOf(s2, 2);
		System.out.println(serFlg3); //3,注意有两个re,返回第一次出现的位置
	}
}

 

   //文件名:LastIndexOfString.java   

public class LastIndexOfString {
	public static void main (String[] args) 
	{
		String s = "LastIndexOfStringStringOf";
		String s1 = "Index";
		String s2 = "Of";
		
		//从右向左查找"Index"这个字符串
		int serFlg1 = s.lastIndexOf(s1);
		System.out.println(serFlg1); //4
		
		int serFlg2 = s.lastIndexOf(s2);
		System.out.println(serFlg2); //23
		
		int serFlg3 = s.lastIndexOf(s2,12); //从索引为12的位置开始查找,即"LastIndexOfSt"反向查找
		System.out.println(serFlg3); //9
	}    
}

 

    3.字符串替换

      对于一个字符串,可以用一个字符去替换该字符串中所有指定的字符,String类提供replace函数可以实现这种操作。
       str.replace(char oldChar, char newChar)
       返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
   //文件名:RepalceString.java     

public class RepalceString {
	public static void main (String[] args) 
	{
		String s = "Replace String is ok,   start";
		char newChar = 'k';
		char oldChar = 's';
		String str = s.replace(oldChar, newChar);
		System.out.println(str); //"Replace String ik ok, ktart" 注意区分大小写
		
		System.out.println(str.replaceAll(" ", " ")); //替换所有匹配项
	}
}

 

    4. 返回一个数据类型值的字符串形式

       对于Java中的基本数据类型, 都可以通过String类提供的valueOf函数将其转换为字符串的形式。
       String valueOf(参数)  
       基本类型通过String.valueOf(a);得到字符串
       字符串通过Integer.parseInt(str);得到基本类型

   //文件名:ValueOfString.java   

public class ValueOfString
{
	public static void main (String[] args) 
	{
		byte a = 3;
		short b = 70;
		int c = 100;
		long d = 500L;
		char e = 'A';
		boolean f = true;
		float g = 1.25F;
		double  h = 1.0567D;
		char[] cArray = {'A','B','C','D'};
		
		System.out.println(String.valueOf(a)); //"3"
		System.out.println(String.valueOf(b));
		System.out.println(String.valueOf(c));
		System.out.println(String.valueOf(d));
		System.out.println(String.valueOf(e));
		System.out.println(String.valueOf(f));
		System.out.println(String.valueOf(g));
		System.out.println(String.valueOf(h));
		System.out.println(String.valueOf(cArray)); //"ABCD"
	}		    
}

 

    5.大小写转换

      String类提供两个无参函数来实现这种转换操作
      str.toUpperCase 全部转成大写
      str.toLowerCase 全部转成小写

   //文件名:StringCase.java   

public class StringCase {
	public static void main (String[] args) 
	{
		String s1 = "I'm a String";
		String s2 = "String is very good";
		s1.toUpperCase();
		System.out.println(s1.toUpperCase());
		System.out.println(s2.toLowerCase());
	}
}

 

    6.字符串的连接

      字符串的连接, 就是将两个字符串连接在一起,成为一个字符串
      方式一: 使用”+”号, “+”不但可以连接两个字符串,还可以将字符串与其他数据类型相连接, 这种情况下,系统自动将其他类型转换为字符串再与该字符串连接.
      方式二:String类提供的concat函数将指定的字符串与另一个字符串相连接

   //文件名:ConcatString.java   

public class ConcatString {
	public static void main (String[] args) 
	{
		String s1 = "String";
		String s2 = "ABCD";
		String s3 = "EFGH";
		
		//连接
		String result1 = s1.concat(s2);
		String result2 = result1.concat(s3);
		System.out.println(result2);
		//可以连写成下面的方式
		String result = s1.concat(s2).concat(s3);
		System.out.println(result);	
	}    
}

 

    8.字符串的比较

       所谓字符串,就是按字典顺序比较两个字符串。String类提供的compareTo函数来对两个字符串的比较。

       该比较基于字符串中各个字符的Unicode值。

       str.compareTo(String anotherString) 结果正数大 负数小 0 相等

       str.equals(str2) 结果 一样true 不一样false

   //文件名:CompareString.java   

public class CompareString {
	public static void main (String[] args) 
	{
		String str1 = "A"; //Unicode码 65
		String str2 = "B"; //Unicode码 66
		
		//不忽略大小写的情况下比较两个字符串
		System.out.println(str1.compareTo(str2));
		System.out.println(str2.compareTo(str1));
		
		str1 = "AA"; //Unicode码 65 65
		str2 = "AB"; //Unicode码 65 66
		
		//不忽略大小写的情况下比较两个字符串,如果首位相等,接着比第二位
		System.out.println(str1.compareTo(str2));
		System.out.println(str2.compareTo(str1));
		
		str1 = "AA"; //Unicode码 65 65
		str2 = "AA"; //Unicode码 65 65
		
		System.out.println(str1.compareTo(str2));
		System.out.println(str2.compareTo(str1));
		
		str1 = "AA"; //Unicode码 65 65
		str2 = "aa"; //Unicode码 65 65
		
		System.out.println(str1.compareToIgnoreCase(str2));
		System.out.println(str2.compareTo(str1));		
	}
}

 

   //文件名:EquString.java   

public class EquString {
	public static void main (String[] args) 
	{
		String str = "good";
		String cmpStr = "good";
		String upcaseStr = "GOOd";
		String anotherStr = "hi";	
		
		System.out.println(str.equals(cmpStr));//不忽略大小写
		System.out.println(str.equals(upcaseStr));//不忽略大小写		
		System.out.println(str.equalsIgnoreCase(upcaseStr)); //忽略大小写
		System.out.println(str.equalsIgnoreCase(anotherStr)); //忽略大小写			
	}
}

   equals函数是在不忽略大小写的情况下,用来比较一个字符串和另一个字符串是否相等。

   equalsIgnoreCase函数是在忽略大小写的情况下,来比较两个字符串是否相等。

 

    9.字符串的长度

      指一个字符串里所包含字符系列的个数。String类提供了一个无参数的函数length来返回字符串的长度,该函数的返回值类型为int型。

   //文件名:StringLength.java   

public class StringLength {
	public static void main (String[] args) 
   	{
   		String s = "I'm a String!"; //13
   		int len = s.length();
   		System.out.println("I'm a String!的长度是:" + len);   		
	}
}

    注意:数组是length属性,没有括号。字符串是length方法,有括号length()。

 

    10.去除字符串的前后的空格

       String类提供了无参数函数trim可以将一个字符串开始和结尾的所有空格都去掉。

   //文件名:StringTrim.java   

public class StringTrim 
{
	public static void main (String[] args) 
	{
		String s = "     Hello      ";
		System.out.println("去除空格前:" + s);
		String str = s.trim();
		System.out.println("去除空格后:" + str);
	}
}

 

    11.获取字符串中的指定字符串

       String类中的charAt函数和getChars函数可以获得一个字符串中的字符,其中charAt(可以获取一个指定索引处的字符),而getChars可以获取一个字符数组

       str.charAt(int index)
       str.getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
       srcBegin - 字符串中要复制的第一个字符的索引, 包含此处的字符。
       srcEnd - 字符串中要复制的结束索引, 不包含此处的字符。
       dst - 目标数组。
       dstBegin - 目标数组中的起始下标。

   //文件名:GetChars.java  

public class GetChars 
{
	public static void main (String[] args) 
	{
		String s = "Nice to meet you!";
		char c = s.charAt(5); //t
		System.out.println(c);
		
		int startIndex = 3;
		int endIndex = 8;
		char[] cArray = new char[endIndex-startIndex];
		
		System.out.println("cArray数组中的内容为:");
		s.getChars(3,8,cArray,0); //e to
		for(int i=0; i<cArray.length; i++)
		{
			System.out.println(cArray[i]);
		}		
	}    
}

 

     12. 测试字符串的前后缀

      在字符串的使用中,会有判断一个字符串是否以指定的字符串开始或结尾的操作,可以利用String类提供的startsWith和endsWith函数来实现这种操作.返回值都是布尔型。

      开始:true

      不开始:false

  //文件名:StartEndString.java  

public class StartEndString {
	public static void main (String[] args) 
	{
		String s = "This is a book";		
		System.out.println(s.startsWith("This")); //true
		System.out.println(s.startsWith("Th"));	//true	
		System.out.println(s.startsWith("is"));//false
		System.out.println(s.endsWith("book"));	//true	
		System.out.println(s.endsWith("boo"));//false			
	}   
}

 

    13.使用split函数进行字符串分割

      字符串分割,就是按一定的规则把指定字符串拆分成多个字符串的操作,返回的是一个String[ ]

  //文件名:SplitString.java   

public class SplitString {
	public static void main (String[] args) 
	{
		String str = "Process completed Configuration: <Default>";
		
		String[] strArray1 = str.split(" ");
		System.out.println("按\" \"分后的数组是:");
		for(int i=0; i<strArray1.length; i++)
		{
			System.out.println(strArray1[i]);
		}
		System.out.println();
		
		String[] strArray2 = str.split(":");
		System.out.println("按:分割后的数组是:");
		for(int i=0; i<strArray2.length; i++)
		{
			System.out.println(strArray2[i]);
		}
		System.out.println();
	}
}

 

    14.关于args

      static void main(String[] args)

      main函数是程序的主函数,该函数是静态函数并且没有返回值。Java应用程序在执行的时候,会首先执行该函数。

      函数的参数是一个字符串类型的数组String[] args。该数组用来接收从命令行传过来的参数,多个参数之间使用空格隔开。这些命令行传入的参数通过args数组传递给main函数进行处理。

 

   15.输入和输出

      从键盘读入数据

      Java语言提供的类InputStream可以从外部数据源获得输入。

      OutputStream可以对数据进行输出。

      read()和write()这两个无参函数分别实现了对数据进行读取和输出功能。

      System.in是一个定义好的输入流变量,可以读取键盘输入的内容。

  //文件名:BRReaderLines.java  

import java.io.*;

public class BRReaderLines {
	public static void main (String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int lines = 100;
		String[] str = new String[lines];
		int i = 0;

		do
		{
			str[i] = br.readLine();
			
			if(i >= 99)
			{
				break;
			}
		}while(!str[i++].equals("stop"));

		for(int j = 0; j<str.length; j++)
		{
			if(str[j] == null)
			{
				break;
			}
			System.out.println(str[j]);
		}
	}
}

 

 

分享到:
评论

相关推荐

    Java第6章 字符串 含源代码

    在Java编程语言中,字符串是极其重要且常用的数据类型,用于处理文本信息。本章将深入探讨Java中的字符串处理,包括其基础知识、方法以及实际应用。以下是对Java字符串的详细讲解: 1. **字符串对象与字面量** 在...

    第6章 字符串.ppt

    第6章 字符串.ppt

    第6章字符串 01.html

    第6章字符串 01.html

    Java语言基础入门教程 Java开发编程基础课程 第6章 字符串 共30页.pptx

    ### Java语言基础入门教程:第六章 字符串 #### 一、字符串概述 在Java语言中,`String` 类是用于表示和操作文本字符串的基本类。不同于其他编程语言中的字符串,`String` 在 Java 中是一个不可变的对象,这意味着...

    第4章 字符串.pptx

    ### 第4章 字符串知识点详解 #### 一、字符串介绍 在计算机编程中,**字符串**是一种常用的数据类型,用于表示一系列字符。在大多数现代编程语言中,字符串被视为不可变对象,这意味着一旦创建了一个字符串,其内容...

    第6章字符串的处理[汇编].pdf

    第6章字符串的处理[汇编].pdf

    python 零基础学习篇-Python-第六章 字符串1-3.mp3

    python 零基础学习篇-Python-第六章 字符串1-3.mp3

    LABVIEW第6章字符串、数组、簇和矩阵.pptx

    在LabVIEW编程环境中,字符串、数组、簇和矩阵是四个重要的数据类型,它们在构建和设计应用程序时扮演着核心角色。下面将详细解释这些概念及其相关的操作。 **6.1 字符串(String)** 字符串在LabVIEW中是常用的...

    汇编语言程序设计简明教程:第6章字符串与文件.ppt

    汇编语言程序设计简明教程:第6章字符串与文件.ppt

    C软件工程师就业求职手册第6章字符串.doc

    其中,`puts`函数用于输出字符串,`gets`用于从输入流读取字符串,`strcat`用于连接两个字符串,`strcpy`用于复制字符串,而`strlen`则用来计算字符串的长度。了解和熟练掌握这些函数的使用对于C/C++程序员来说是...

    Java高级程序设计:第6章-字符串和包装类.pptx

    第6章 字符串和包装类;本章目标;字符串String;Strings are Imm;字符串对象的创建方法;Interned String;Interned String;Interned String;取得字符串的长度;按照位置取得指定字符;遍历字符串;练习;下标越界异常;获取...

    第4章 字符串1

    第四章主要讲解的是字符串这一数据结构,它是计算机科学中一种重要的数据类型。字符串是由零个或多个字符组成的有限序列,可以看作是一类特殊限制的线性表。在这个章节中,我们将深入理解字符串的基本概念、存储结构...

    Python程序设计董付国(第二版)第4章字符串与正则表达式.pptx

    Python程序设计董付国第二版第四章字符串与正则表达式知识点总结 1. 字符串编码:ASCII、UTF-8、UTF-16、UTF-32、GB2312、GBK、CP936、base64等,了解不同编码格式的特点和应用场景。 2. Python字符串类型:Python...

    第03章 字符串用法.rar

    本章我们将深入探讨字符串的常见操作和使用技巧,以帮助你更好地理解和运用字符串这一重要的编程工具。 一、字符串定义与创建 字符串是由一个或多个字符组成的序列,通常用于存储文本信息。在很多编程语言中,如...

    第8章 字符串处理

    6. **字符串拼接**:在Python中,可以使用`+`运算符或者`join()`方法;在Java中,使用`+`或`StringBuilder/StringBuffer`类。 7. **字符串分割**:`split()`方法是将字符串按照指定的分隔符切割成多个子串,返回一...

    C++Primer第五版 第3章 字符串变量和数组(练习解答)

    在这一章中,你将学习如何创建、初始化、操作和比较字符串,以及如何使用字符串函数进行各种操作,如查找、替换和连接字符串。 数组则是一种存储同一类型元素集合的数据结构。数组的大小在声明时必须指定,并且元素...

    第9章 字符串 (1).ppt

    第九章的讲解主要聚焦在字符串的概念、存储方式以及如何在C语言中操作字符串。字符串是编程中常用的数据结构,尤其在处理文本信息时至关重要。在C语言中,字符串是由字符序列组成的,通常以空字符'\0'作为结束标志。...

    第 8 章:数组与字符串

    第1章: 概述 第 2 章:C#与Visual Studio 2005 第 3 章:变量、数据类型和表达式 ...第 8 章:数组与字符串 第 9 章:基于 Windows 的应用程序 第 10 章:创建 Web 应用程序 第 11 章:.NET Framework 2.0 简介

    罗宾500例-第10章 字符串.rar

    "罗宾500例-第10章 字符串.rar"是一个专门针对字符串处理的学习资源,它包含了多个实例,旨在帮助用户深入理解和熟练掌握字符串操作。在这个压缩包中,我们可以期待找到一系列关于VC++中字符串处理的示例代码和解释...

Global site tag (gtag.js) - Google Analytics