第6章 實用類及接口_第1頁
第6章 實用類及接口_第2頁
第6章 實用類及接口_第3頁
第6章 實用類及接口_第4頁
第6章 實用類及接口_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

本章主要內(nèi)容字符串類(String、StringBuffer和StringTokenizer類)時間及日期處理類(Date類、Calendar類和DateFormat類)集合(Collection)和泛型其他實用類(Math、Random和Arrays類)6.1字符串處理java.lang包中有兩個處理字符串的類String和StringBuffer。String類描述固定長度的字符串,其內(nèi)容是不變的,適用于字符串常量。StringBuffer類描述長度可變且內(nèi)容可變的字符串,適用于需要經(jīng)常對字符串中的字符進行各種操作的字符串變量。java.util包中有個StringTokenizer類,它可以通過分割符來分解字符串。6.1.1String類1.產(chǎn)生String對象我們可以通過兩種方式創(chuàng)建字符串對象,一種是用雙引號“""”輸入字符串文字,一種是用new關(guān)鍵字調(diào)用構(gòu)造方法。如下形式:Stringstr1="Java";Stringstr2=newString("Java");2.String類的構(gòu)造方法3.String類的常用方法classExample6_1{publicstaticvoidmain(Stringargs[]){charcharArray[]={'b','i','r','t','h','','d','a','y'};bytebyteArray[]={(byte)'n',(byte)'e',(byte)'w',(byte)'',(byte)'y’,(byte)'e',(byte)'a',(byte)'r'};Strings=newString("hello");//調(diào)用6個不同的構(gòu)造函數(shù)來創(chuàng)建String對象

Strings1=newString();Strings2=newString(s);Strings3=newString(charArray);Strings4=newString(charArray,6,3);Strings5=newString(byteArray,4,4);Strings6=newString(byteArray);System.out.println("s1="+s1+"\ns2="+s2+"\ns3="+s3+"\ns4="+s4+"\ns5="+s5+"\ns6="+s6);}}【例】利用構(gòu)造方法創(chuàng)建字符串對象classExample6_2{ //覆蓋Object類中的toString()方法

publicStringtoString(){ return"example"; }}classValueOfTest{ publicstaticvoidmain(String[]args) { charc=0x41; inti=0x41; booleanb=i==c; Example6_2obj=newExample6_2(); char[]chars={'a','1','b','2'}; System.out.print(String.valueOf(b)+""); System.out.print(String.valueOf(c)+""); System.out.print(String.valueOf(i)+""); System.out.print(String.valueOf(obj)+""); System.out.println(String.valueOf(chars)+""); }}【例】valueOf()方法的應(yīng)用classExample6_3{publicstaticvoidmain(Stringargs[]){Strings1="hellothere";charcharArray[]=newchar[5];System.out.println("s1:"+s1);System.out.println("\nLengthofs1:"+s1.length());//調(diào)用String類的length方法

System.out.print("\nThestringreversedis:");for(intcount=s1.length()-1;count>=0;count--)System.out.print(s1.charAt(count)+""); //調(diào)用String類的charAt方法

s1.getChars(0,5,charArray,0);//調(diào)用String類的getChars方法

System.out.print("\nThecharacterarrayis:");for(intcount=0;count<charArray.length;count++)System.out.print(charArray[count]);System.out.println();}}【例】length()和charAt()和getChar()各個方法的應(yīng)用classIndexOfExample{ publicstaticvoidmain(String[]args) { Stringletters="abcdefghabcdefgh"; System.out.println("'c'islocatedatindex"+letters.indexOf('c')); System.out.println("'a'islocatedatindex"+letters.indexOf('a',1)); System.out.println("last'a'islocatedatindex"+letters.lastIndexOf('a',10)); }}【例】字符串檢索classSubStringExample{ publicstaticvoidmain(String[]args) { Strings="helloJava語言"; intn1=s.indexOf('a'); intn2=s.indexOf("a語"); System.out.println("n1="+n1+"n2="+n2); charc=s.charAt(2); Strings1=s.substring(6,10); Strings2=s.substring(4,7); System.out.println("c="+c+"s1="+s1+"s2="+s2); }}【例】字符串截取和定位classStringCompare{publicstaticvoidmain(Stringargs[]){Strings1=newString("hello");Strings2="goodbye";Strings3="HappyBirthday";Strings4="happybirthday";System.out.println("s1="+s1+"\ns2="+s2+"\ns3="+s3+"\ns4="+s4+"\n");if(s1.equals("hello")) //調(diào)用String類的equals方法判斷字符串是否相等

System.out.println("s1equals\"hello\"\n");elseSystem.out.println("s1doesnotequal\"hello\"\n");//調(diào)用String類的equalsIgnoreCase方法

//在不區(qū)分大小寫的情況下判斷兩字符串是否相等

if(s3.equalsIgnoreCase(s4)) System.out.println("s3equalss4\n");elseSystem.out.println("s3doesnotequals4\n"); //調(diào)用String類的compareTo方法進行兩字符串的大小比較

System.out.println("pareTo(s2)is"+pareTo(s2)+"\pareTo(s1)is"+pareTo(s1)+"\pareTo(s1)is"+pareTo(s1)+"\pareTo(s4)is"+pareTo(s4)+"\pareTo(s3)is"+pareTo(s3)+"\n");

}}【例】字符串比較方法的應(yīng)用publicclassExample6_7{publicstaticvoidmain(Stringargs[]){Strings="Hello,Java,Stri\tng";System.out.println("s原始值:"+s);System.out.println("判斷字符串是否為空:"+s.isBlank());System.out.println("去掉首尾空格:"+s.strip());System.out.println("去掉尾空格:"+s.stripTrailing());System.out.println("去掉首空格:"+s.stripLeading());System.out.println("字符串重復(fù):"+s.repeat(3));System.out.println("行數(shù)統(tǒng)計:"+s.lines().count());

}}【例】JDK11新增的字符串處理方法的應(yīng)用6.1.2StringBuffer1.StringBuffer構(gòu)造方法StringBuffer()StringBuffer(intlength)StringBuffer(Stringstr)2.長度length()與容量capacity()3.setLength()和ensureCapacity()4.charAt()和setCharAt()5.getChars()6.a(chǎn)ppend()和insert()7.delete()和deleteCharAt()8.replace()9.reverse()10.substring()classStringBufferExample{publicstaticvoidmain(Stringargs[]){StringBuffersb=newStringBuffer("Hello");System.out.println("buffer="+sb);System.out.println("length="+sb.length());System.out.println("capacity="+sb.capacity());}}【例】length()和capacity()方法的使用classCharAtExample{publicstaticvoidmain(Stringargs[]){StringBuffersb=newStringBuffer("Hello");System.out.println("bufferbefore="+sb);System.out.println("charAt(1)before="+sb.charAt(1));sb.setCharAt(1,'i');sb.setLength(2);System.out.println("bufferafter="+sb);System.out.println("charAt(1)after="+sb.charAt(1));}}【例】charAt()和setCharAt()方法的使用classappendExample{ publicstaticvoidmain(String[]args) { Objecto="Hello"; Strings="goodbye"; charcharArray[]={'a','b','c','d','e','f'}; booleanb=true; charc='A'; inti=7; longl=10000000; floatf=2.5f; doubled=666.666; StringBufferbuf=newStringBuffer(); buf.insert(0,o).insert(0,"").insert(0,s); buf.insert(0,"").insert(0,charArray); buf.insert(0,"").insert(0,b); buf.append("").append(l).append("").append(f); buf.append("").append(d); System.out.println(buf.toString()); }}【例】append()和insert()方法的使用classDeleteExample{publicstaticvoidmain(Stringargs[]){StringBuffersb=newStringBuffer("Thisisatest.");sb.delete(4,7);System.out.println("Afterdelete:"+sb);sb.deleteCharAt(0);System.out.println("AfterdeleteCharAt:"+sb);}}【例】delete()和deleteCharAt()方法的程序classReplaceExample{publicstaticvoidmain(Stringargs[]){StringBuffersb=newStringBuffer("Thisisatest.");sb.replace(5,7,"was");System.out.println("Afterreplace:"+sb);}}【例】replace()方法的使用classReverseExample{publicstaticvoidmain(Stringargs[]){StringBuffers=newStringBuffer("abcdef");System.out.println(s);s.reverse();System.out.println(s);}}【例】reverse()方法的使用6.1.3StringTokenizer(字符串標記)使用StringTokenizer時,指定輸入一個要分解字符串和一個包含了分割符的字符串。分割符(Delimiters)是分割標記的字符。分割符字符串中的每一個字符被當做一個有效的分割符,例如,“,;:”建立逗號、分號和冒號分割符。默認建立5個分割符有空白符字符、空格、tab鍵、換行及回車。StringTokenizer的常用方法:intcountTokens()booleanhasMoreElements()booleanhasMoreTokens()ObjectnextElement()StringnextToken()StringnextToken(Stringdelimiters)packagesample;importjava.util.StringTokenizer;classStringTokenizerExample{staticStringin="title=MasteringCoreJava;"+"author=Lixin;"+"publisher=PublishingHouseofElectronicIndustry;"+"copyright=2007";publicstaticvoidmain(Stringargs[]){StringTokenizerst=newStringTokenizer(in,"=;");while(st.hasMoreTokens()){Stringkey=st.nextToken();Stringval=st.nextToken();System.out.println(key+"\t"+val);}}}【例】StringTokenizer的使用6.2時間及日期處理在Java應(yīng)用開發(fā)中,對時間的處理是很常見的。Java提供了三個日期類:Date、Calendar和DateFormat。在程序中,對日期的處理主要是如何獲取、設(shè)置和格式化,Java的日期類提供了很多方法以滿足程序員的各種需要。Date和Calendar類在java.util包中,DateFormat類在java.text包中,所以在使用前程序必須引入這兩個包。Date支持下面的構(gòu)造方法:Date()Date(longmillisec)Date的常用方法:booleanafter(Datedate)booleanbefore(Datedate)Objectclone()IntcompareTo(Datedate)IntcompareTo(Objectobj)booleanequals(Objectdate)longgetTime()InthashCode()voidsetTime(longtime)StringtoString()6.2.1Date(日期)

importjava.util.Date;classDateExample{publicstaticvoidmain(Stringargs[]){//創(chuàng)建Date對象

Datedate=newDate();//顯示代表當前日期的字符串

System.out.println(date);//顯示代表當前日期的整數(shù)

longmsec=date.getTime();System.out.println("MillisecondssinceJan.1,1970GMT="+msec);}}【例】Date類的使用6.2.2Calendar(日歷)為了獲得關(guān)于日期和時間的更加詳細的信息,可以使用Calendar類。它提供了一組方法,這些方法允許將以毫秒為單位的時間轉(zhuǎn)換為一組有用的分量。一些可以提供信息的類型是:年、月、日、小時、分和秒。Calendar定義的常量和常見方法importjava.util.Calendar;classCalendarExample{publicstaticvoidmain(Stringargs[]){Stringmonths[]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};//創(chuàng)建Calendar對象

Calendarcalendar=Calendar.getInstance();//顯示日期信息

System.out.print("Date:");System.out.print(months[calendar.get(Calendar.MONTH)]);System.out.print(""+calendar.get(Calendar.DATE)+"");System.out.println(calendar.get(Calendar.YEAR));System.out.print("Time:");System.out.print(calendar.get(Calendar.HOUR)+":");System.out.print(calendar.get(Calendar.MINUTE)+":");System.out.println(calendar.get(Calendar.SECOND));calendar.set(Calendar.HOUR,10);calendar.set(Calendar.MINUTE,29);calendar.set(Calendar.SECOND,22);System.out.print("Updatedtime:");System.out.print(calendar.get(Calendar.HOUR)+":");System.out.print(calendar.get(Calendar.MINUTE)+":");System.out.println(calendar.get(Calendar.SECOND));}}【例】Calendar方法的使用6.2.3DateFormat類DateFormat類主要用來創(chuàng)建日期格式化器,由格式化器將日期轉(zhuǎn)換為各種日期格式串輸出。6.2.4SimpleDateFormat類SimpleDateFormat類是DateFormat類的一個子類,用來自定義顯示日期和時間信息的格式化模型。packagesample;importjava.text.*;importjava.util.*;classSimpleDateFormatExample{publicstaticvoidmain(Stringargs[]){Datedate=newDate();SimpleDateFormatsdf;sdf=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");System.out.println(sdf.format(date));sdf=newSimpleDateFormat("hh:mm:ss");System.out.println(sdf.format(date));sdf=newSimpleDateFormat("ddMMMyyyyhh:mm:sszzz");System.out.println(sdf.format(date));sdf=newSimpleDateFormat("EMMMddyyyy");System.out.println(sdf.format(date));}}【例】如何使用SimpleDateFormat類6.3集合(Collection)框架和泛型在集合框架中,主要有以下接口。Collection接口是一組允許重復(fù)的對象。Set接口繼承Collection,但不允許重復(fù),使用自己內(nèi)部的一個排列機制。List接口繼承Collection,允許重復(fù),以元素安插的次序來放置元素,不會重新排列。Map接口是一組成對的鍵-值對象,即所持有的是key-valuepairs。Map中不能有重復(fù)的key。其擁有自己的內(nèi)部排列機制。6.3.1Collection1.特性:Collection接口中的元素沒有特定的順序,元素也可以重復(fù)。2.實現(xiàn)類:實現(xiàn)Collection接口的類是AbstractCollection類,這個類也是Collection庫中其他類的父類,它有兩個子類AbstractSet和AbstractList類,這些類都是抽象類,所以不能直接使用它們。3.Collection主要方法:(1)單元素添加、刪除操作

booleanadd(Objecto):將對象添加給集合。add方法會返回一個boolean值,告訴是否成功把數(shù)據(jù)加進去。

booleanremove(Objecto):如果集合中有與o相匹配的對象,則刪除對象o。(2)查詢操作

intsize():返回當前集合中元素的數(shù)量。

booleanisEmpty():判斷集合中是否有任何元素。

booleancontains(Objecto):查找集合中是否含有對象o。

Iteratoriterator():返回一個迭代器,用來訪問集合中的各個元素。3.Collection主要方法:(3)組操作:作用于元素組或整個集合

booleancontainsAll(Collectionc):查找集合中是否含有集合c中的所有元素。

booleanaddAll(Collectionc):將集合c中所有元素添加給該集合。

voidclear():刪除集合中所有元素。

voidremoveAll(Collectionc):從集合中刪除集合c中的所有元素。

voidretainAll(Collectionc):從集合中刪除集合c中不包含的元素。(4)Collection轉(zhuǎn)換為Object數(shù)組

Object[]toArray():返回一個內(nèi)含集合所有元素的array。

Object[]toArray(Object[]a):返回一個內(nèi)含集合所有元素的array。運行期返回的array和參數(shù)a的類型相同,需要轉(zhuǎn)換為正確類型。6.3.2SetSet接口繼承Collection接口,它的特性是存放在里面的元素是沒有特定的順序,但是元素不可以重復(fù)。Set接口所提供的方法除了繼承Collection接口的方法外,還多了個“clear”方法,讓你一次將里面的數(shù)據(jù)全部清除。Set接口有另外一個子接口:SortedSet接口,放在SortedSet中的數(shù)據(jù)是有順序的。集合框架支持Set接口兩種普通的實現(xiàn)類:HashSet和TreeSet(TreeSet實現(xiàn)SortedSet接口)。importjava.util.*;publicclassSetExample{ publicstaticvoidmain(Stringargv[]) { Setset=newHashSet(); set.add(newInteger(5)); set.add("abc"); set.add(newDouble(1.2)); set.add(newInteger(5)); set.add("abc"); System.out.println(set); }}【例】Set接口的HashSet類的使用importjava.util.*;publicclassSortedSetExample{ publicstaticvoidmain(Stringargv[]) { SortedSetset=newTreeSet(); set.add(newInteger(5)); set.add(newInteger(1)); set.add(newInteger(8)); set.add(newInteger(5)); set.add(newInteger(3)); System.out.println(set); }}【例】Set接口的TreeSet類的使用6.3.3ListList接口繼承了Collection接口以定義一個允許重復(fù)項的有序集合。所以存放在List中的數(shù)據(jù),是有特定順序的,也是也可以重復(fù)的。該接口不但能夠?qū)α斜淼囊徊糠诌M行處理,還添加了面向位置的操作。在集合框架中有兩種常用的List實現(xiàn)類:ArrayList和LinkedList。如果要支持隨機訪問,而不必在除尾部外的任何位置插入或除去元素,那么可以使用ArrayList。如果不需要頻繁地從列表的中間位置添加和除去元素,而只要順序地訪問列表元素,那么,LinkedList實現(xiàn)類更好。importjava.util.*;publicclassListExample{publicstaticvoidmain(Stringargv[]){Listlist1=newLinkedList();Listlist2=newArrayList();list1.add("abc");list1.add(newInteger(3));list1.add(newBoolean(true));list1.add(newInteger(3));list2.add("abc");list2.add(newInteger(3));list2.add(newBoolean(true));list2.add(newInteger(3));System.out.println("LinkedList:"+list1);System.out.println("ArrayList:"+list2);}}【例】List接口的使用6.3.4Iterator接口java提供了Iterator接口,讓我們能夠把Collection對象中的數(shù)據(jù)一個個讀取出來。Iterator的常用方法如下:

booleanhasNext():判斷是否存在另一個可訪問的元素。

Objectnext():返回要訪問的下一個元素。如果到達集合結(jié)尾,則拋出NoSuchElementException異常。

voidremove():刪除上次訪問返回的對象。

importjava.util.*;publicclassIteratorExample{ publicstaticvoidmain(Stringargv[]){ Listlist=newLinkedList(); list.add("abc"); list.add(newInteger(3)); list.add(newBoolean(true)); list.add(newInteger(3)); System.out.println(list); Iteratorit=list.iterator(); while(it.hasNext()) System.out.println(it.next()); it.remove(); }}【例】Iterator接口的使用6.3.5Map接口Map接口不是Collection接口的繼承。Map跟Set和List不同的地方在于,Map存放數(shù)據(jù)時,需要有個關(guān)鍵值(key),這個關(guān)鍵值會對應(yīng)到一個指定的數(shù)據(jù)(value)。Map接口中的常見方法:(1)添加、刪除操作

Objectput(Objectkey,Objectvalue):將互相關(guān)聯(lián)的一個關(guān)鍵字與一個值放入該映像。

Objectremove(Objectkey):從映像中刪除與key相關(guān)的映射。

voidputAll(Mapt):參數(shù)t為包含需要添加鍵值對的Map,該方法將t中包含的元素添加進改方法所在的Map。

voidclear():從映像中刪除所有映射。(2)查詢操作

Objectget(Objectkey):獲得與關(guān)鍵字key相關(guān)的值,并且返回與關(guān)鍵字key相關(guān)的對象。

booleancontainsKey(Objectkey):判斷映像中是否存在關(guān)鍵字key,則返回true。

booleancontainsValue(Objectvalue):判斷映像中是否存在值value。

intsize():返回當前映像中映射的數(shù)量。

booleanisEmpty():判斷映像中是否有任何映射。集合框架提供兩種常規(guī)的Map實現(xiàn)類:HashMap和TreeMap(TreeMap實現(xiàn)SortedMap接口)。在Map中插入、刪除和定位元素時,HashMap是最好的選擇。但如果要按自然順序或自定義順序遍歷鍵,那么TreeMap會更好。importjava.util.*;publicclassHashMapExample{ publicstaticvoidmain(String[]args){ //創(chuàng)建了HashMap對象

HashMaphm=newHashMap(); //向HashMap對象中添加內(nèi)容不同的鍵值對

hm.put(1,"A"); hm.put(3,"B"); hm.put(4,"C"); hm.put(2,"D"); hm.put(5,"E"); System.out.println("添加元素后的結(jié)果為:"); System.out.println(hm); //移除了HashMap對象中鍵為97001的值

hm.remove(3); //替換鍵值97002對應(yīng)的值

hm.put(4,"F"); //打印輸出HashMap[中的內(nèi)容

System.out.print("刪除和替換元素后結(jié)果為:"); System.out.println(hm); //取出指定鍵對應(yīng)的值

Objecto=hm.get(2);//使用了自動打包功能

Strings=(String)o; System.out.println("鍵2對應(yīng)的值為:"+s); }}【例】HashMap類的使用程序6.3.6泛型Java泛型(generics)是JDK5中引入的一個新特性,本質(zhì)是為了參數(shù)化類型,也就是說在泛型使用過程中,操作的數(shù)據(jù)類型被指定為一個參數(shù),這種參數(shù)類型可以用在類、接口和方法中,分別被稱為泛型類、泛型接口、泛型方法。一開始,Java中泛型的形式定義如下形式List<String>strList=newArrayList<String>();但是從Java7開始,Java允許在構(gòu)造器后不需要帶完整的泛型信息,只要給出一對尖括號(<>)即可,Java可以推斷尖括號里應(yīng)該是什么泛型信息。即上面語句可以改寫為如下形式:List<String>strList=newArrayList<>();

publicclassGenericClass<T>{ privateTt; publicvoidprint(Tt){ System.out.println(t); }

publicstaticvoidmain(String[]args){ GenericClass<Integer>integervar=newGenericClass<>(); GenericClass<String>stringvar=newGenericClass<>();

integervar.print(newInteger(3)); stringvar.print(newString("three")); } }【例】泛型類的使用publicclassGenericMe{ publicstatic<E>voidgenericMethods(E[]arrays){ //輸出數(shù)組元素<E> for(Earray:arrays){ System.out.print(array+","); } } publicstaticvoidmain(Stringargs[]){ //創(chuàng)建不同類型的數(shù)組,Integer和String類型 Integer[]intArray={1,2,3,4,5}; String[]stringArray={"one","two","three","four","five"};

System.out.println("整型數(shù)組元素為:"); genericMethods(intArray);//輸出整型數(shù)組

System.out.println("\n字符串型數(shù)組元素為:"); genericMethods(stringArray);//輸出字符串型數(shù)組 }}【例】泛型方法的使用

publicclassExample6_25{ publicstaticvoidgetData(List<?>data){ System.out.println("data:"+data.get(0)); } publicstaticvoidmain(String[]args){ List<String>name=newArrayList<>(); List<Integer>age=newArrayList<>(); name.add("Java"); age.add(2); getData(name); getData(age); }}【例】類型通配符的使用

6.3.7集合的增強Java8新增Predicate集合Java8新增Stream操作Java9新增不可變集合Java11新增Lambda表達式作為參數(shù)……

6.4其他實用類MathRandomArrays6.4.1Math類

Math類是一個最終類,Math類包含執(zhí)行初等指數(shù)、對數(shù)、平方根及三角函數(shù)等這些基本數(shù)值操作所用的方法(靜態(tài)方法)。publicclassMinimum{ publicstaticvoidmain(String[]args) { int[]a={75,43,52,14,32,41,22,11,33,84,89}; intmin=a[0]; for(inti=1;i<a.length;i++) { min=Math.min(min,a[i]); } System.out.println("Theminimumvalueis:"+min); }}【例】Math類中的min()方法使用6.4.2RandomRandom類是偽隨機數(shù)的產(chǎn)生器。之所以稱之為偽隨機數(shù),是因為它們是簡單的均勻分布序列。為了使Java程序有良好的可移植性,應(yīng)該盡量可能使用Random類來生成隨機數(shù)。Random的常用方法:booleannextBoolean()VoidnextBytes(bytevals[])doublenextDou

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論