这里是引用
String StringBuffer StringBuilder 集合框架等知识练习
package com.situ.day06.situ;
import org.junit.Test;
import java.sql.SQLOutput;
import java.util.*;
public class Test02 {
/**
* String长度是不可改变的,StringBuffer、StringBuilder长度是可变的。
* 2、StringBuffer是线程安全(需要加锁,效率低)、
* StringBuilder是线程不安全(没有加锁,效率高)。
*/
@Test
public void test1() {
String str1 = "a";
String str2 = "b";
String str3 = "c";
String str4 = str1 + str2 + str3;
System.out.println(str4);//中间产生不必要的对象
StringBuilder builder = new StringBuilder("d");
builder.append("e").append("f").append("g");//依次拼接
//System.out.println(builder);//defg
StringBuffer buffer = new StringBuffer("h");
buffer.append("i").append("j").append("k");
System.out.println(buffer);//hijk
String str = builder.toString();//把builder输出字符串付给str
System.out.println(str);//defg
}
@Test
public void test2() {
//自动装箱
Integer integer = 4;
//自动拆箱
int i = integer;
System.out.println(integer);//4
System.out.println("--------");
System.out.println(i);//4
//包装数据类型和字符串之间的转换
//1、把基本数据类型转换成字符串
String str = 12 + "";
System.out.println(str);//12
String str1 = Integer.toString(1);
System.out.println(str1);
String str2 = Double.toString(9.6);
System.out.println(str2);
Character ch = 'a';
String str3 = Character.toString(ch);
System.out.println(str3);
}
// 实现trim方法
//情况1 ----java Android----
//情况2 ---------
//情况3 null
@Test
public void test3() {
String str = null;
String newstr = trim(str);
System.out.println(newstr);
}
public String trim(String str) {
if(str == null){
return "错误字符串"; // 考虑多种情况
}
char[] array = str.toCharArray();
int startcount = 0;
int endcount = array.length - 1;
while ((startcount <= endcount ) && (str.charAt(startcount) == '-')) { //注意&&左右顺序
startcount++;
}
while ((startcount <= endcount ) && (str.charAt(endcount) == '-')) {
endcount--;
}
return str.substring(startcount, endcount + 1);//错误 java: 缺少返回语句 用了sout
}
/**
* 2、实现把“I Love Java!”的字符全部转换为小写并输出到控制台。
* toLowerCase() toUpperCase()
* Case Sensitive大小写敏感
*/
@Test
public void test4(){
String str = "I Love Java!";
String newstr = toLowerCase(str);
System.out.println(newstr);
}
public String toLowerCase(String str){
char[] array = str.toCharArray();
for (int i = 0; i < array.length; i++) {
if(array[i] >= 'A' && array[i] <= 'Z'){
array[i] = (char)(array[i] + 32);
}
}
return new String(array); // String 创建对象
}
//集合框架
//ArrayList HashSet
// 有序,可重复 无序 不重复
@Test
public void test5(){
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("b");
list.add("cc");
for (String s : list) {
System.out.println(s);
}
//Java
//b
//cc
System.out.println("--------");
Set<String> set = new HashSet<>();
set.add("Java");
set.add("b");
set.add("cc");
for (String s : set) {
System.out.println(s);
}
//cc
//Java
//b
}
//ArrayList和LinkedList
// 动态数组 改查
//链表结构 增删
@Test
public void test6(){
LinkedList<String> linkedlist = new LinkedList<>();
linkedlist.addFirst("A");
linkedlist.addLast("B");
System.out.println(linkedlist);//[A, B]
}
//map
//Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值
@Test
public void test7(){
Map<String, String> map = new HashMap<>();
map.put("cn","中国");
map.put("kr","韩国");
Set<Map.Entry<String, String>> entrySet = map.entrySet();
System.out.println(entrySet);//[kr=韩国, cn=中国]
System.out.println("-------");
System.out.println(map);//{kr=韩国, cn=中国}
System.out.println(map.get("cn"));//中国
System.out.println("*********");
Iterator<Map.Entry<String, String>> iterator = entrySet.iterator();
while(iterator.hasNext()){
Map.Entry<String, String> entry = iterator.next();
System.out.println(entry.getKey() + ":" + entry.getValue() );
}
System.out.println("*********");//kr:韩国 cn:中国
Set<String> key = map.keySet();
Iterator<String> it = key.iterator();
while(it.hasNext()){
String entrykey = it.next();
System.out.println(entrykey);
}
}
}