Java 中的字符串 操作

package day01;

import org.junit.Test;
public class TestString {

	/**
	 * 测试常量池
	 *
	 * */
	@Test
	public void testConstantPool(){
		String str1 = "Hello";
		//
		String str2 = "Hello";
		//两个对象使用==进行比较,返回值为true 说明两个对象引用 指向的内存区域相同
		System.out.println(str1 == str2);

		String str3 =  new String("Hello");
		//说明两个对象引用 指向的内存区域  不 相同,使用new创建的字符串 不会缓存在String
		//常量池
		System.out.println(str1 == str3);

	}
	/*
	 * 获取String 对象的长度
	 */
	@Test
	public void testLength(){
		String str1 = "Hello";
		System.out.println(str1.length());
		//在内存中采用Unicode编码 每个字节2个字符
		//任何一个字符都算一个长度
		String str2 = "你好,String";
		System.out.println(str2.length());
	}
	/*
	 * 字符串截取
	 */
	@Test
	public void testSubstring(){
		String str = "http://www.oracle.com";
		String substr = str.substring(11, 17);
		System.out.println(substr);

	}
	/*
	 * 去掉空格Trim
	 *
	 */
	@Test
	public void testTrim(){
		String userName = "  good man";
		System.out.println(userName.length());

		userName = userName.trim();
		System.out.println(userName.length());
		System.out.println(userName);

	}
	/*
	 * 遍历字符串中的字符序列
	 */
	@Test
	public void testCharAt(){
		String name = "xuejingbo";
		for (int i=0;i<name.length();i++){
			char c = name.charAt(i);
			System.out.print(c+ " ");
		}
	}
	//endWith 以特定字符结束  startsWidth 以**开始
	//toLowerCase
	//toUpperCase

	//将其他类型的转为字符串
	//String 类的valueOf 重载的方法,可以将double类型,int类型,Boolean及char
	//类型转变为String类变量
	@Test
	public void testValueOf(){
		double pi = 3.1415926;
		int value = 123;
		boolean flag = true;
		char[] charArr = {‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘};

		String str = String.valueOf(pi);
		System.out.println(str);
		str = String.valueOf(value);
		System.out.println(str);
	}
	/*
	 * 测试StringBuilder append
	 */
	@Test
	public void testAppend(){
		StringBuilder sb = new StringBuilder("programing language:");
		sb.append("java").append("cpp").append("php").append("c#");
		System.out.println(sb.toString());
	}
	/*
	 * 测试StringBuilder insert
	 */
	@Test
	public void testInsert(){
		StringBuilder sn = new StringBuilder("thisisatest");
		sn.insert(5, "html");
		System.out.println(sn);
	}
}

  

时间: 2024-08-01 08:07:26

Java 中的字符串 操作的相关文章

java入门学习笔记之2(Java中的字符串操作)

因为对Python很熟悉,看着Java的各种字符串操作就不自觉的代入Python的实现方法上,于是就将Java实现方式与Python实现方式都写下来了. 先说一下总结,Java的字符串类String本身定义了一些简单的字符串操作, 字符串常用操作有: 1. 取某一字符第一次出现/最后一次出现的索引 2. 取字符串某一位置的字符 3. 字符串截取 4. 去除首尾空格 5. 字符串字符替换 6. 判断两个字符串是否相等 7. 大小写转换 下面开始: 1.取某一字符第一次出现/最后一次出现的索引 JA

JAVA中的字符串操作

一.替换 1.把对应字符换成新的字符 比如"D:\java_learn"中的'\'换成‘\\’ String str = "D:\\java_learn\\JAVA学习\\2016年9月27日.txt";    //相当于D:\java_learn\JAVA学习\2016年9月27日.txt String str2 = str.replace("\\","\\\\"); 而不能用StringBuffer的replace方法,因

Java中的字符串常量池

最近做到一个题目: 问题:String str = new String("abc"),"abc"在内存中是怎么分配的?    答案是:堆,字符串常量区. 题目考查的为Java中的字符串常量池和JVM运行时数据区的相关概念."abc"为字面量对象,其存储在堆内存中.而字符串常量池则存储的是字符串对象的一个引用. Java中的字符串常量池 Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid&qu

JavaScript中的字符串操作

JavaScript中的字符串操作 一.概述    字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更多....JavaScript的核心部分提供了一组属性和方法用于通用的字符串操作,如分割字符串,改变字符串的大小写,操作子字符串等.    当前的大部分浏览器也能从强大的正则表达式获益,因为它极大地简化了大量的字符串操作任务,不过它也需要你克服一条有些陡峭的学习曲线.在这里,主要是介绍字符串本身的一些操作,正

java中的集合操作类(未完待续)

申明: 实习生的肤浅理解,如发现有错误之处,还望大牛们多多指点 废话 其实我写java的后台操作,我每次都会遇到一条语句:List<XXXXX> list = new ArrayList<XXXXX>(); 但是我仅仅只是了解,list这个类是一个可变长用来存储的对象实例的类,我甚至觉得这个List对象可以理解成数组,但是却又与java中咱们正常理解的数组很多的不同,比如说,他的长度可以随着需要自动增长,比如说,实例化一个List类就和咱们声明数组的时候是不一样的! 今天的实习生活

JAVA中创建字符串的两种方式的区别

我们知道,通常在Java中创建一个字符串会有两种方式,通过双引号直接赋值和通过构造器来创建. String x = "abcd"; String y = new String("abcd"); 然而,这两种方式之间的区别是什么?分别应用于哪些情况,之前还不是很懂. 1.双引号的方式 String x = "abcd"; String y = "abcd"; System.out.println(x==y);//true Sys

转载:Java中的字符串常量池详细介绍

引用自:http://blog.csdn.net/langhong8/article/details/50938041 这篇文章主要介绍了Java中的字符串常量池详细介绍,JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被成为字符串常量池或者字符串字面量池,需要的朋友可以参考下 Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid";,另一种就是使用new这种标准的构造对象的方法,如String str = new Stri

2.1号Java复习题目——Java中的字符串(基础知识整理)

Java中的字符串基础知识 作为程序开发当中,使用最频繁的类型之一,字符串有着与基础类型相同的地位,甚至在 JVM(Java 虚拟机)编译的时候会对字符串做特殊的处理,比如拼加操作可能会被 JVM 直接合成为一个最终的字符串,从而到达高效运行的目的. 1 String 特性 String 是标准的不可变类(immutable),对它的任何改动,其实就是创建了一个新对象,再把引用指向该对象: String 对象赋值之后就会在常量池中缓存,如果下次创建会判定常量池是否已经有缓存对象,如果有的话直接返

protobuf在java中的字符串化

最近由于项目需要,大致研究了一下protobuf的java使用.说实话,习惯了C++的protobuf,java用起来真别扭. 由于需要将protobuf序列化后,存入redis,而且redis没法直接存储非字符串的数据,所以我只能想办法将protobuf序列化成字符串. protobuf的java实现里,并没有直接序列化成String类型变量的方法,但是提供了toByteArray()方法,可以序列化成byte[]. 于是乎很容易想到可以这么做: byte[] raw_bytes = prot