重寫Java的String及其大部分方法
如題,閒來無事筆者琢磨著重寫Java的String字串類,以求加深理解:
程式碼如下:
package com.rabbit;
public class string {
private char[] chars;
public string(){
}
public string(String str){
chars=new char[str.length()];
for(int i=0;i<str.length();i++){
chars[i]=str.charAt(i);
}
}
public String toString(){
StringBuffer str=new StringBuffer();
for(int i=0;i<chars.length;i++){
str.append(chars[i]);
}
return str.toString();
}
public int length(){
return chars.length;
}
public int indexOf(char c){
int index=0;
for(int i=0;i<chars.length;i++){
if(chars[i]==c){
index=i;
return index;
}
}
return -1;
}
public int lastIndexOf(char c){
int index=0;
for(int i=chars.length-1;i>=0;i--){
if(chars[i]==c){
index=i;
return index;
}
}
return -1;
}
public char charAt(int k){
return chars[k];
}
public boolean startsWith(String str){
for(int i=0;i<str.length();i++){
if(str.charAt(i)==chars[i]){
return true;
}
}
return false;
}
public boolean endsWith(String str){
for(int i=str.length()-1;i>=0;i--){
if(str.charAt(i)==chars[chars.length-str.length()]){
return true;
}
}
return false;
}
public String toUpperCase(){
StringBuffer str=new StringBuffer();
for(int i=0;i<chars.length;i++){
str.append((char)((int)chars[i]-32));
}
return str.toString();
}
public String toLowerCase(){
StringBuffer str=new StringBuffer();
for(int i=0;i<chars.length;i++){
str.append((char)((int)chars[i]+32));
}
return str.toString();
}
public boolean equals(String str){
if(chars.length!=str.length()){
return false;
}else{
for(int i=0;i<chars.length;i++){
if(chars[i]!=str.charAt(i)){
return false;
}
}
return true;
}
}
public String trim(){
StringBuffer str=new StringBuffer();
for(int i=0;i<chars.length;i++){
str.append(chars[i]);
}
if(chars[0]==' '||chars[0]=='\t'){
str.delete(0,1);
}
if(chars[chars.length-1]==' '||chars[chars.length-1]=='\t'){
str.delete(str.length()-1,str.length());
}
return str.toString();
}
public String replace(char c1,char c2){
StringBuffer sb=new StringBuffer();
for(int i=0;i<chars.length;i++){
if(chars[i]==c1){
chars[i]=c2;
}
}
for(int i=0;i<chars.length;i++){
sb.append(chars[i]);
}
return sb.toString();
}
public String substring(int a,int b) {
StringBuffer sb=null;
if(a>b){
throw new StringIndexOutOfBoundsException();
}
try {
sb = new StringBuffer();
for (int i = a; i < b; i++) {
sb.append(chars[i]);
}
}catch(StringIndexOutOfBoundsException e){
e.printStackTrace();
}
return sb.toString();
}
public String substring(int a) {
StringBuffer sb = new StringBuffer();
for (int i = a; i <chars.length; i++) {
sb.append(chars[i]);
}
return sb.toString();
}
相關文章
- java之方法的重寫Java
- java 方法重寫概念Java
- java方法的神奇修改(重寫)Java
- Java重寫equals方法時為什麼要重寫hashcode方法Java
- Java 面試題關於方法的重寫Java面試題
- Java中方法重寫與方法過載Java
- java 新建立的類要重寫的方法Java
- Java -- String的intern方法Java
- Java 重寫方法與初始化的隱患Java
- 複習java面對物件(方法重寫)Java物件
- Java String類的replaceAll方法Java
- java String的equals,intern方法Java
- 網頁重寫字串val()方法的擴充套件獲取安全引數String網頁字串套件
- Day33:String類及其常用方法詳解
- Java中String類的常用方法Java
- Java 中 String 的構造方法Java構造方法
- Java 中 String 的常用方法(一)Java
- Java 中 String 的常用方法(二)Java
- 重寫equals()方法時,需要同時重寫hashCode()方法
- java String 常用方法集合Java
- Java中父類方法重寫有哪些需要注意的?Java
- Java中final修飾的方法是否可以被重寫Java
- 二、Java初級--8、繼承和重寫方法Java繼承
- 【iOS】category重寫方法的呼叫iOSGo
- Java-String的常用方法總結!Java
- 方法重寫(Override)IDE
- java基礎學習之三:方法的過載和重寫Java
- java -繼承 -重寫Java繼承
- 建議重寫equals方法時也一併重寫hashCode方法
- java為什麼要重寫hashCode和equals方法Java
- JavaBean重寫Object類中的方法JavaBeanObject
- 方法重置和重寫的區別
- Java原始碼之String的HashCode方法Java原始碼
- 你不知道的Java重寫Java
- Java中的過載和重寫Java
- 【JAVA】重寫和過載Java
- Java中的JavaCore/HeapDump檔案及其分析方法Java
- Java中main方法引數String[ ] args的使用JavaAI