package com.atguigu.test09;
import org.junit.Test;
/*
* 方法系列一:
* (1)int length():返回字符串的长度,返回的是字符的个数
* 因为String的内部(JDK1.9之前)用char[]实现,这个长度就是value数组的长度
* (2)boolean isEmpty():是否是空字符串
* (3)String toLowerCase()
* String toUpperCase()
* (4)String trim() :去掉字符串的前后空白符
* (5)String concat():拼接,等价于+
*/
public class TestStringMethod01 {
@Test
public void test3(){
String s1 = "hello";
String s2 = "world";
String s3 = s1 + s2;
String s4 = s1.concat(s2);
System.out.println(s3 == s4);//false//变量和变量拼接,此处s3和s4都是变量;s1和s2是常量;
System.out.println(s3.equals(s4));//true
}
@Test
public void test2(){
String str = " hello world ";
str = str.trim();//需要有一个对象接受操作后的字符串对象;
System.out.println("[" + str + "]");
}
@Test
public void test1(){
String str = "hello";
System.out.println(str.toUpperCase());
}
}
package com.atguigu.test09;
import java.util.Scanner;
import org.junit.Test;
/*
* 方法系列二:和char相关
* (1)char[] toCharArray()//字符串转换成字符数组
* (2)char charAt(index)//输出第index个数组
* (3)String(char[] arr)//
* (4)String(char[] arr,int offset, int count)
*/
public class TestStringMethod2 {
@Test
public void test05(){
char[] arr = {'h','e','l','l','o'};
String string = new String(arr,2,3);//从[2]开始,取3个
System.out.println(string);
}
@Test
public void test04(){
char[] arr = {'h','e','l','l','o'};
String string = new String(arr);
System.out.println(string);
}
@Test
public void test03(){
String str = "HelloWorld";
System.out.println(str.charAt(4));
}
@Test
public void test02(){
Scanner input = new Scanner(System.in);
System.out.print("请输入性别:");
String str = input.next();
char gender = str.charAt(0);
System.out.println(gender);
}
@Test
public void test01(){
String str = "HelloWorld";
//统计大写字母的个数
char[] arr = str.toCharArray();
int count = 0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]>='A' && arr[i]<='Z'){
count++;
}
}
System.out.println("大写字母的个数:" +count);
}
}
package com.atguigu.test09;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
import org.junit.Test;
/*
* 方式系列三:和byte相关,或者说和编码与解码相关
*(1) byte[] getBytes():编码的方法,使用平台默认的字符编码进行编的
* byte[] getBytes(编码方式):
*
* 编码: 对于ASCII码范围内(0~127),无论用什么编码方式,结果都是一样的,一个字符对应一个字节的编码值
* 对于其他的字符,编码,结果不一定是几个字节,例如汉字:
* UTF-8:变长的,但是大多数汉字都是3个字节
* GBK、GB2312:固定2个字节
* ISO8859-1:不支持中文,所有字符都变为1个字节
* (2)new String(字节数组)
* new String(字节数组,编码方式)
*
* 编码:
* 把字符-->字节的过程,编给计算机用的
* 解码:
* 把字节-->字符的过程,解给人看的
*
* 乱码:
* (1)编码与解码字符集不一致
* (2)缺字节
*/
public class TestStringMethod3 {
@Test
public void test05() throws UnsupportedEncodingException{
String str = "尚硅谷";
byte[] bytes = str.getBytes("ISO8859-1");
System.out.println(Arrays.toString(bytes));//[63, 63, 63]
String string = new String(bytes,"ISO8859-1");
System.out.println(string);
}
@Test
public void test04() throws UnsupportedEncodingException{
String str = "尚硅谷";
byte[] bytes = str.getBytes("GBK");
System.out.println(Arrays.toString(bytes));//[-55, -48, -71, -24, -71, -56]
String string = new String(bytes,"GBK");
System.out.println(string);
}
@Test
public void test03() throws UnsupportedEncodingException{
String str = "尚硅谷";
byte[] bytes = str.getBytes();
System.out.println(Arrays.toString(bytes));//[-27, -80, -102, -25, -95, -123, -24, -80, -73]
String string = new String(bytes,"UTF-8");
System.out.println(string);
}
@Test
public void test02(){
String str = "abc";
byte[] bytes = str.getBytes();
System.out.println(Arrays.toString(bytes));//[97, 98, 99]
}
@Test
public void test01(){
String str = "a";
byte[] bytes = str.getBytes();
System.out.println(Arrays.toString(bytes));//[97]
}
}
package com.atguigu.test09;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
import org.junit.Test;
/*
* 方式系列三:和byte相关,或者说和编码与解码相关
* (1)byte[] getBytes():编码的方法,使用平台默认的字符编码进行编的
* byte[] getBytes(编码方式):
*
* 编码: 对于ASCII码范围内(0~127),无论用什么编码方式,结果都是一样的,一个字符对应一个字节的编码值
* 对于其他的字符,编码,结果不一定是几个字节,例如汉字:
* UTF-8:变长的,但是大多数汉字都是3个字节
* GBK、GB2312:固定2个字节
* ISO8859-1:不支持中文,所有字符都变为1个字节
* (2)new String(字节数组)
* new String(字节数组,编码方式)
*
* 编码:
* 把字符-->字节的过程,编给计算机用的
* 解码:
* 把字节-->字符的过程,解给人看的
*
* 乱码:
* (1)编码与解码字符集不一致
* (2)缺字节
*/
public class TestStringMethod3 {
@Test
public void test05() throws UnsupportedEncodingException{
String str = "尚硅谷";
byte[] bytes = str.getBytes("ISO8859-1");
System.out.println(Arrays.toString(bytes));//[63, 63, 63]
String string = new String(bytes,"ISO8859-1");
System.out.println(string);
}
@Test
public void test04() throws UnsupportedEncodingException{
String str = "尚硅谷";
byte[] bytes = str.getBytes("GBK");
System.out.println(Arrays.toString(bytes));//[-55, -48, -71, -24, -71, -56]
String string = new String(bytes,"GBK");
System.out.println(string);
}
@Test
public void test03() throws UnsupportedEncodingException{
String str = "尚硅谷";
byte[] bytes = str.getBytes();
System.out.println(Arrays.toString(bytes));//[-27, -80, -102, -25, -95, -123, -24, -80, -73]
String string = new String(bytes,"UTF-8");
System.out.println(string);
}
@Test
public void test02(){
String str = "abc";
byte[] bytes = str.getBytes();
System.out.println(Arrays.toString(bytes));//[97, 98, 99]
}
@Test
public void test01(){
String str = "a";
byte[] bytes = str.getBytes();
System.out.println(Arrays.toString(bytes));//[97]
}
}