很多的编程语言都会强调利用字符数组来描述字符串,实际上在Java里面也存在有类似的概念,在String类中也提供有一系列与字符操作有关的方法。No.方法名称类型描述

1public String(char[] value)构造将全部的字符数组作为String的内容

2public String(char[] value, int offset, int count)构造将部分的字符数组变为字符串,设置字符数组的开始索引与使用个数

3public char charAt(int index)普通返回指定索引位置上的字符

4public char[] toCharArray()普通将字符串以字符数组的形式返回

范例:验证charAt()方法

Java代码  public class StringDemo {

public static void main(String args[]) {

String str = "hello" ;

char c = str.charAt(0) ;

System.out.println(c) ;

}

}

在程序中字符串索引都是从0开始的。

而后最为关键的是实现字符串与字符数组间的互相转换。

范例:将字符串变为字符数组

Java代码  public class StringDemo {

public static void main(String args[]) {

String str = "helloworld" ;

char [] data = str.toCharArray() ;// 将字符串变为字符数组

for (int x = 0 ; x

System.out.print(data[x] + "、") ;

}

}

}

当字符串变为字符数组之后就可以针对于里面的每一个字符进行操作。

范例将字符串中的小写字母变为大写字母

· 小写字母的编码 >大写字母的编码,差了32,也就是说每一个字符都减去32即可。

Java代码  public class StringDemo {

public static void main(String args[]) {

String str = "helloworld" ;

char [] data = str.toCharArray() ;  // 将字符串变为字符数组

for (int x = 0 ; x

data[x] -= 32 ;         // 编码减去32,成大写

}

System.out.println(new String(data)) ;

System.out.println(new String(data,5,5)) ;   // 第5个索引,之后取5个长度的内容

}

}

下面可以利用此操作功能判断某一个字符串是否全部由数字所组成。

· 将字符串变为字符数组,这样做的目的可以进行每个字符的依次判断;

· 判断每一个字符的范围是否是数字:'0' ~ '9'之间。

范例:实现判断

Java代码  public class StringDemo {

public static void main(String args[]) {

String str = "123" ;

System.out.println(isNumber(str)) ;

}

public static boolean isNumber(String temp) {

char data [] = temp.toCharArray() ;  // 将字符串变为字符数组

for (int x = 0 ; x

if (data[x]  '9') {  // 不是数字

return false ;

}

}

return true ;

}

}

3.2、字节与字符串

除了字符可以与字符串进行互相转换之外,字节也可以进行转换,但是这样的转换往往会出现在实际的开发环节中。No.方法名称类型描述

1public String(byte[] bytes)构造将全部字节数组变为字符串

2public String(byte[] bytes, int offset, int length)构造将部分字节数组变为字符串

3public byte[] getBytes()普通将字符串变为字节数组

4public byte[] getBytes(String charsetName) throws UnsupportedEncodingException普通编码转化

首先对于byte一定要清楚,虽然它的范围要比char小,但是byte还是可以明确的描述出字母的范围的。

范例利用字节数组实现小写字母变为大写字母的操作

Java代码  public class StringDemo {

public static void main(String args[]) {

String str = "helloworld" ;

byte data [] = str.getBytes() ; // 将字符串变为字节数组

for (int x = 0 ; x

data[x] -= 32 ;  // 改变编码

}

System.out.println(new String(data)) ;

}

}

3.3、字符串比较

现在至少应该知道了字符串比较有一个equals()方法,但是此方法本身是属于区分大小写的比较,为此在Java里面针对于字符串的比较实际上还有其他方法。No.方法名称类型描述

1public boolean equals(String anObject)普通区分大小写的字符串比较

2public boolean equalsIgnoreCase(String anotherString)普通不区分大小写的字符串比较

3public int compareTo(String anotherString)普通比较字符串大小

4public int compareToIgnoreCase(String str)普通不区分大小写比较字符串大小

范例观察equals()的问题

Java代码  public class StringDemo {

public static void main(String args[]) {

String strA = "hello" ;

String strB = "HEllo" ;

System.out.println(strA.equals(strB)) ; // false

System.out.println(strA.equalsIgnoreCase(strB)) ;   // true

}

}

验证码操作中可真的部分大写或者是小写字母。

在进行字符串相等的比较操作之中,最为关键的一个方法是:compareTo(),这个方法本身返回一个int型数据,而这个int型数据有三种结果:大于(>0)、小于(<0)、等于(=0)。

范例:比较字符串大小

Java代码  public class StringDemo {

public static void main(String args[]) {

String strA = "A" ;

String strB = "a" ;

System.out.println(strA.compareTo(strB)) ;  // -32

System.out.println(strA.compareToIgnoreCase(strB)) ;    // 0

}

}

在compareTo()方法之中要进行比较是依据编码进行相减得来的。所以利用compareTo()返回值范围进行判断就可以区分大小关系了。

Java代码  public class StringDemo {

public static void main(String args[]) {

String strA = "a" ;

String strB = "a" ;

System.out.println(strA.compareTo(strB)) ;  // -32

System.out.println(strA.compareToIgnoreCase(strB)) ;    // 0

if (strA.compareTo(strB) == 0) {

System.out.println("两个字符串的内容相同!") ;

}

}

}

3.4、字符串查找

从一个完整的字符串之中查找一些子字符串,而可以实现这种字符串查找功能的方法有如下几个:No.方法名称类型描述

1public boolean contains(String s)普通判断某一个字符串是否存在

2public int indexOf(String str)普通取得某一个子字符串的索引位置,找不到返回-1

3public int indexOf(String str, int fromIndex)普通从指定索引位置开始检索子字符串位置,找不到就返回-1

4public int lastIndexOf(String str)普通从后向前查找指定子字符串的位置,找不到返回-1

5public int lastIndexOf(String str, int fromIndex)普通从指定位置由后向前查找子字符串的位置,找不到返回-1

6public boolean startsWith(String prefix)普通判断是否以某个字符串开头

7public boolean startsWith(String prefix, int toffset)普通从指定位置判断是否以某个字符串开头

8public boolean endsWith(String suffix)普通是否以指定的字符串结尾

如果要查找中间的内容,那么现在基本上都使用contains()方法了。

范例使用contains()方法

Java代码  public class StringDemo {

public static void main(String args[]) {

String str = "hello" ;  // 0:h、1:e、2:l、3:l、4:o。

if (str.contains("l")) {     // 此方法直接返回true或者是false

System.out.println("已查找到!") ;

}

}

}

contains()方法虽然现在用的比较多,但是其是在JD K1.5后才提供的。而在JD 1.5之前那么只能够通过indexOf()方法实现。

范例:利用indexOf()方法判断

Java代码  public class StringDemo {

public static void main(String args[]) {

String str = "hello" ;  // 0:h、1:e、2:l、3:l、4:o。

System.out.println(str.indexOf("l")) ;  // 2,第一个满足的位置

if (str.indexOf("l") != -1) {   // 现在表示索引查找到了

System.out.println("内容已经查找到!") ;

}

}

}

默认情况下indexOf()都是从第一个字母开始查找。那么也可以利用其的重载方法从指定索引位置查找。

范例:其他查找

Java代码  public class StringDemo {

public static void main(String args[]) {

String str = "hello" ;  // 0:h、1:e、2:l、3:l、4:o。

System.out.println(str.indexOf("l",3)) ;    // 3

System.out.println(str.lastIndexOf("l")) ;  // 3

}

}

在字符串查找操作里面还可以判断开头或者是结尾。

范例判断开头或结尾

Java代码  public class StringDemo {

public static void main(String args[]) {

String str = "**@@hello##" ;

System.out.println(str.startsWith("**")) ;      // true

System.out.println(str.startsWith("@@",2)) ;    // true

System.out.println(str.endsWith("##")) ;    // true

}

}

这几个查询现在出现最多的就是contains()、startsWith()、endsWith()。

java string范围_java,String相关推荐

  1. java自制缓冲池_java String 缓冲池概念的举例说明

    口试中常会碰到String对象构造的题目.例如String s= new String("a");创建了几个对象. 下面根据代码具体解释一下各种String构造情况. 代码如下: ...

  2. java string 分析_java String 可变性的分析

    前言 这两天在看java面试相关的一些问题,很偶然也很幸运的看到了下面这篇文章. 这篇文章的作者有一系列关于java深入学习的文章,很值得一看,个人觉得非常好,很有收获. 起因 正如我们所理解的,通过 ...

  3. java equals 字符串_Java String 字符串 比较 == equals

    1.==该运算符表示指向字符串的引用是否相同,如t1==t2这种情况, 是因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份, 所以t1和t2指向的是同一个对象,而t1==t4返回 ...

  4. java 不可变_java - String是不可变的。 究竟是什么意思?

    java - String是不可变的. 究竟是什么意思? 这个问题在这里已有答案: Java中字符串的不变性                                     24个答案 我在不 ...

  5. java replace无效_Java String.replace()方法无效的原因及解决方式

    首先我们来看个例子 public class Demo1 { public static void main(String[] args) { String aa="abcd"; ...

  6. java isempty用法_Java String 的 isEmpty() 与 null 与 区别解析

    问:简单说说 String 的 isEmpty() 与 null 与 "" 的区别? 答: public class Test { public static void main( ...

  7. java contains 效率_java String contains逻辑的优化

    有一个"AAA,BBB"格式的字符串组成的List,有一个字符串SSS 现在想遍历List,如果字符串SSS中包含了AAA,并且包含了BBB,则返回ture.否则将List全部遍历 ...

  8. java 字符串驻留_java String 以及字符串直接量 与 字符串驻留池 ...

    结果输出 :fancydeepin这是怎么回事?不是说 String 是不可变的字符串吗?怎么这里又变了?是这样的,在这里 name 只是一个引用类型变量,并不是一个 String 对象,@1中创建了 ...

  9. java split 坑_java String split 踩坑记

    split操作是出镜率非常高的一个方法, 但是我们使用中通常会使用两个类提供的split方法, 他们在入参类型一样, 但是效果却有一些差别, 稍不注意容易踩坑. java.lang.String#sp ...

最新文章

  1. MySQL优化篇:锁机制
  2. [PA2014]Pakowanie
  3. css媒体查询标准,CSS 媒体查询 - 实例
  4. centos 安装cacti监控
  5. saltstack管理saltstack认证相关
  6. 用深度学习解决大规模文本分类问题
  7. poj 2948 Martian Mining (dp)
  8. 实体与标识符的理解 0125
  9. web前端技术基础课程讲解之浅谈对soket的理解
  10. MySQL 创建联结
  11. 优达学城深度学习之三(下)——卷积神经网络
  12. LBS (基于位置服务)-- Location Based Service
  13. 马斯克:俄罗斯火箭发动机非常棒 停售不会影响SpaceX
  14. Java Tomcat生成图片验证码不显示问题 超坑记录
  15. 四级恋练有词课程 (10课时-朱伟)1.Unit1A单词识记(上)
  16. 不能连接到虚拟设备 floppy0,因为在主机上没有相应的设备。
  17. RGB转换HSL,HSV及切割车牌
  18. 如何计算java对象大小
  19. Educational Codeforces Round 141 (Rated for Div. 2) 赛时口胡思路(青大acmer训练日常)小上一波分
  20. oracle 杀掉spid,oracle 存储过程 sid spid 如果sid被杀掉了,spid是不也自动停止了?...

热门文章

  1. Markup.h 和 Markup.cpp 文件(下一篇)内容,直接复制创建就行了
  2. [Java] Java常见错误
  3. jQuery起点教程之有序化插件实例
  4. C++断言与静态断言
  5. DFS Codeforces Round #290 (Div. 2) B. Fox And Two Dots
  6. Ogre学习笔记Basic Tutorial 前四课总结
  7. PHP安全新闻早8点_1127
  8. 技术研究院003---六种方式,教你在SpringBoot初始化时搞点事情!
  9. AndroidStudio_android使用自己封装的消息队列处理问题_封装LinkedQueue---Android原生开发工作笔记242
  10. MQTT工作笔记0004---CONNECT控制报文1