一、String字符串理解

  java字符串类,包含了字符串的值和实现字符串相关操作的一些方法

  1、String字符串可分静态字符串和动态字符串

  静态初始化字符串:String s1 = "hello";

  动态初始化字符串:String s2 = new String("hello");

  2、静态初始化与动态初始化的区别

  String s = "hello";  //在字符串常量池中分配空间(静态) 
  String s = String("hello");//在对堆内存中分配空间(动态) 

二、String字符串常用方法

  charAt(int index) //返回指定下标的字符(从零开始)

  compareTo(String s)  //字符串比较 
  concat(String s)  //字符串包含/拼接 
  equals() //判断两个字符串内容是否相同

 getBytes()  //返回字节数组

  indexOf()  //查找子串下标 
  split()//分割字符串返回字符串数组与StringTokenizer有相识的功能【常用】 
  subString()//获取子串 
  toString()//对象转化为大写字母 
  toLowerCase()//转换为小写字母
 
  实例如下: 

  字符串和字符数组的转换  

public class string001 {
public static void main(String[] args)
{
String str1= "xiaoluo"; //定义一个字符串
char c[] = str1.toCharArray(); //toCharArray:将前面的name字符串转换为一个数组
for (int i=0;i<c.length;i++)
{
System.out.print(c[i]+"\t"); //循环取出数组中的每一个元素
}
System.out.println(""); //换行
String str2 = new String(c); //将全部数组转换至一个字符串
String str3 = new String(c,0,3); //将0-3个元素转换至一个字符串
System.out.println(str2);
System.out.println(str3);
}
}
//x i a o l u o
//xiaoluo
//xia

  字符串中取出指定位置的字符  

public class String002 {
public static void main(String[] args)
{
String str1 = "xiaoluo"; //声明一个字符串
System.out.println(str1.charAt(3));//charAt方法:取出字符串下标为3的元素
}
}
//o

  将一个字符串变成一个byte数组,同时将一个byte数组变成一个字符串

  字符串可以通过getBytes()方法将String变成一个byte数组,然后可以通过String的构造方法将一个字节数组从新变为字符串

public class String003 {
public static void main(String[] args)
{
String str1 ="beijing"; //声明一个字符串
byte b[] =str1.getBytes(); //通过getBytes:将字符串转换为一个字节数组
System.out.println(new String(b)); //将整个字节数组转换为一个字符串
System.out.println(new String(b,1,3));//将字节数组b中下标为1-3的元素转换为字符串
}
}
//beijing
//eij

  获取一个字符串所占长度

  通过调用length方法获取了字符串的长度

public class StringLength {
public static void main(String[] args)
{
String str1 = "beijing"; //声明一个字符串
System.out.println("str1字符串长度为:"+str1.length());//通过length获取字符串长度
}
}
//str1字符串长度为:7

  注意:length和length()区别?

    先明确一点,任何方法的调用后面必须带()才是实现,而length是取数组长度,元素后没有带()括号,而字符串调用length是一个方法,方法的调用后面必须带()

  indexOf方法查找指定的字符串中是否存在某个元素

public class String_indexOf {
public static void main(String[] args)
{
String str1 = "qwertyuioepe";//声明一个字符串
System.out.println(str1.indexOf("w"));//通过indexOf方法查找字符串中是否存在w元素存在位置
System.out.println(str1.indexOf("e",4));//通过indexOf方法查找e元素是否存在并从第四个元素开始查找第一个e
System.out.println(str1.indexOf("b"));//字符串中不存在的元素返回-1
}
}
//1
//9
//-1

  去除左右两边空格

  trim()方法去除字符串中多余空格  

public class String_indexOf {
public static void main(String[] args)
{
String str1 = " qwertyuioepe ";//声明一个字符串
System.out.println(str1.trim());//trim方法:去除字符串中左右两边的空格
System.out.println(str1);
}
}
//qwertyuioepe
// qwertyuioepe

  字符串截取

  通过substring()方法截取指定的字符串或字符串之间的元素

public class String_indexOf {
public static void main(String[] args)
{
String str1 = "qwertyuioepe";//声明一个字符串
System.out.println(str1.trim());//trim方法:去除字符串中左右两边的空格
// System.out.println(str1);
System.out.println(str1.substring(4));//substring方法:从四个元素开始截图后面的元素
System.out.println(str1.substring(0,4));//结果下标为0-4之间的元素
}
}
//qwertyuioepe
//tyuioepe
//qwe

  按照指定的字符串拆分字符串

  在Stringzing通过split()方法可以进行字符串的拆分操作,拆分的数据将Yui字符串数组的形式返回,如下是按照空格进行拆分并将拆分的字符串保存在一个列表

public class String_indexOf {
public static void main(String[] args)
{
String str1 = "hello world";//声明一个字符串
String str2[] = str1.split(" ");//按照空格对str1中字符串进行拆分并将拆分的元素保存在一个列表
for(int i=0;i<str2.length;i++) //循环输出str2[]中所有元素
{
System.out.println(str2[i]);
}
}
}
//hello
//world

   判断字符串以某某开头或某某结尾

  startsWith:判断字符串以某某开头

  endsWith:判断字符串以某某结尾

public class String_indexOf {
public static void main(String[] args)
{
String str1 = "***hello world";//声明一个字符串
String str2 = "nihao***";
if(str1.startsWith("***"))
{
System.out.println("(***hello world)以***开头");
}
if(str2.endsWith("***"))
{
System.out.println("(nihao***)以***结尾");
}
}
}
//(***hello world)以***开头
//(nihao***)以***结尾

  指定字符串进行替换

  在String中使用replaceAll可对字符串中存在字符进行指定行替换 

public class String_indexOf {
public static void main(String[] args) {
String str1 = "hello world";//声明一个字符串
String str2 = str1.replaceAll("w","W");//replaceAll方法:将w元素替换成W
System.out.println(str2);
}
}
//hello World

java-String基础篇的更多相关文章

  1. 你所不知道的库存超限做法 服务器一般达到多少qps比较好[转] JAVA格物致知基础篇:你所不知道的返回码 深入了解EntityFramework Core 2.1延迟加载(Lazy Loading) EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public? 藏在正则表达式里的陷阱 两道面试题,带你解析Java类加载机制

    你所不知道的库存超限做法 在互联网企业中,限购的做法,多种多样,有的别出心裁,有的因循守旧,但是种种做法皆想达到的目的,无外乎几种,商品卖的完,系统抗的住,库存不超限.虽然短短数语,却有着说不完,道不 ...

  2. java 线程基础篇,看这一篇就够了。

    前言: Java三大基础框架:集合,线程,io基本是开发必用,面试必问的核心内容,今天我们讲讲线程. 想要把线程理解透彻,这需要具备很多方面的知识和经验,本篇主要是关于线程基础包括线程状态和常用方法. ...

  3. JDBC-使用Java连接数据库-基础篇

    这是小主第一次写Java连接数据库博客,初学Java之时,Java连接数据库是我最头疼的,不过经过一个月的学习,也差不多略有收获,所以给大家分享一下. Java连接数据库大约需要五大步骤: 创建数据库 ...

  4. java面试基础篇(三)

    1.Q:ArrayList 和 LinkedList 有什么区别? A:ArrayList查询快!LinkedList增删快.ArrayList是基于索引的数据接口,它的底层是数组.空间占用相对小一些 ...

  5. java面试基础篇(二)

    上一篇,我们说了一下线程和Map,或许那些太抽象,不太好理解,也不太方便记忆,我们这次说一些简单的. 1.Q:java的基本数据类型有哪些? A:四种整数类型(byte.short.int.long) ...

  6. 新年在家学java之基础篇-高级类的特性

    继承 extends 子类的共性代码都是继承自父类的,每个子类只要写自己特有的代码 class 子类 extends 父类 继承提高了代码的复用性,提供了多态的前提,但是不要为了某个功能去继承 子类不 ...

  7. JAVA格物致知基础篇:用JAX-RS和Jersey打造RESTful Service

    随着服务器的处理能力越来越强,业务需求量的不断累积,越来越多的公司开始从单一服务器,单一业务承载变成了多服务器,多业务承载的快速扩展的过程中.传统的方法很难满足和应付这种业务量的增长和部署方式的改变. ...

  8. Java编程基础篇第六章

    构造方法 一:概念: 给对象的数据(属性)进行初始化 二:特点: a.方法名与类同名(字母大小写也要一样) b.没有返回值类型 c.没有具体的返回值 return 三:构造方法重载: 方法名相同,与返 ...

  9. Java编程基础篇第五章

    数组概述 概念:数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器.数组既可以存储基本数据类型,也可以存储引用数据类型.应用场景:为了存储同种数据类型的多个值 数组定义格式 格式1:元素类型 ...

  10. Java编程基础篇第三章

    逻辑运算符 与(&)(&&),或(||)(|),非(!) &和&&的区别 &:无论&的左边真假,右边都进行运算 &&:当 ...

随机推荐

  1. dll文件是什么

    dll实际上是动态链接库的缩写,从windows1.0开始,动态链接库就是整个操作系统的基础,那么这有什么作用呢?在dos时代,程序员是通过编写程序来达到预期的目的的,每实现一个目的就需要编写一个程序 ...

  2. Python相对、绝对导入浅析

    这篇文章从另外一个不同的视角来分析一下Python的import机制,主要的目的是为了搞懂import中absolute.relative import遇到的几个报错. 这里不同的视角是指从Pytho ...

  3. Yii 验证输入框是否输入的是数字

    在对应的Model文件的rules中加入如下代码: array('age,phone', 'numerical', 'integerOnly'=>true,'message'=>'{att ...

  4. 读javascript高级程序设计08-引用类型之Global、Math、String

    一.Global 所有在全局作用域定义的属性和方法,都属于Global对象. 1.URI编码: encodeURI():主要用于对整个URI编码.它不会对本身属于URI的特殊字符进行编码. encod ...

  5. window.requestAnimationFrame

    今天小猪在看一个html5的demo时一直在找他的动画是怎么实现的,按照我的理解就应该是调用setInterval来循环调用动画函数来实现.但是在Demo中就是找不到这个函数.干着急的小猪只好一步一步 ...

  6. JavaWeb chapter 4 Servlet处理HTTP请求

    1.  GET/POST提交方法: 用户在网页上点击一个超链接:(get) 用户提交在网页上提交表单:(post或者get) 用户在浏览器地址栏输入URL地址并回车(get) 2.  默认情况下都是使 ...

  7. 找做IT的男朋友会不会没有隐私

    找做IT的男朋友会不会没有隐私你不觉得自己在网上不断的“秀”啊,“晒”啊的行为才是根本所在吗?你应该怕自己的这种行为才对吧-—————————————————————————————————————— ...

  8. 如何提高Service的优先级避免被杀死或者杀死后如何再次重启Service?

    2014-01-21 16:45:02 我们知道,当进程长期不活动时,如果系统资源吃紧,会杀死一些Service,或不可见的Activity等所在的进程. 如何避免Service被系统杀死,随便在网上 ...

  9. [Weekly] 2014.03.01-2014.03.08

    这周写过好多东西,虽然还没有完全弄明白线段树,但是progress还是有的! 不过有时候真的很想哭,因为自己的梦想连别人看看韩剧.无所事事还要分量轻,实在不明白政治课的Teamwork意义何在,花两分 ...

  10. NodeJs和ReactJs单元测试工具——Jest

    Jest——Painless JavaScript UnitTesting 特点 适应性强 默认使用Jasmine断言 模块化的 可扩展的 可配置的 沙箱式且快速 虚拟化JS环境,模拟浏览器 并行运行 ...