import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /* * 慎用String,會造成大量的垃圾,增加拉垃圾回收器的壓力 */ import java.util.*; public class BasicTest { public static void main(String[] args) { // TODO Auto-generated method stub BasicTest test = new BasicTest(); test.StringTest(); System.out.println(isNumber("v0.123a")); } public void StringTest() { byte[] by = new byte[] {65,66,66,67,68,69}; String string = new String(by); System.out.println(string.length()); char a = string.charAt(1);//用charAt方法需要前面用char类型 //String的substring方法,提取字符段 String sub = string.substring(1); System.out.println(sub); String subs = string.substring(1, 3);//第2到4个 System.out.println(subs); //compareTo&compareToIgnore方法,后者忽略大小写 //前者大于后者返回正值,等于返回0,小于返回负值 int ab = sub.compareTo(subs); System.out.println("两个值相比较的结果是:"+ab); //concat方法,表示字符串连接 String lianjie = "abc".concat("def").concat("ghi"); System.out.println("连接的结果是:"+lianjie); //append方法,也可以用来连接字符 //用法1: StringBuffer buffer = new StringBuffer(); buffer.append("Json").append(",Zhangxueyou"); System.out.println(buffer.toString()); //用法2: StringBuffer buffera = new StringBuffer().append("JACKzhou").append("Feng"); System.out.println(buffera.toString()); /* * 关于String,StringBuffer和StringBuilder * String类有关键字final修饰,不可继承,不能修改。为不可变值(后两者都是可变值),一旦要改变只能新建一个字符串,速度比StringBuffer和StringBuilder慢 * StringBuffer类有关键字synchornized修饰,因此是线程安全型,在多线程中,需要多次修改时使用 * StringBuilder类不是线程安全型,一般在单线程中使用,速度在三者中最快。后两者都继承AbstratStringBuffer */ /* * 此外,关于println方法打印的類型: * System.out的println 方法: PrintStream.println() PrintStream.println(boolean,char,char[],double,float,int,long) PrintStream.println(java.lang.Object), PrintStream.println(java.lang.String); 没有参数类型是Stringbuffer的,所以就用toString()方法轉化為String類型 */ //IndexOf()查找字符在字符串首次出现的位置 //LastIndexOf()方法查找末尾首次出现位置 int weizhi = string.indexOf("a"); System.out.println(weizhi); //日期的格式化 Date today = new Date(); String aa= String.format(Locale.CHINA,"%tB",today);//tb是2月,tm是月份為兩位數的月份,ta是星期,tY是年份,td是日期值 System.out.println("今天所屬的月份是:"+aa);//今天所屬的月份是:二月 String bb= String.format(Locale.CHINA,"%td",today); System.out.println("今天所屬的日期是:"+bb); //判斷輸入的字符串是否為數值 System.out.println("請輸入字符串"); //Scanner scann = new Scanner(System.in); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try { String read = reader.readLine(); //StringBuffer buffer = scann.next(); //方法1:涉及到正則表達式 boolean nun = isNum(read); if(nun) System.out.println("這是數字"); else System.out.println("這不是數字"); }catch(IOException e) { e.printStackTrace(); } //方法2: } public static boolean isNum(String str){ return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$"); } public static boolean isNumber(String a) { //char[] b = a.charAt(); for(int i =0;i<a.length();i++) { int b = a.charAt(i); if(b>=48&b<=57 || b==46) return true; else return false; } return false; } }
浙公网安备 33010602011771号