重寫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 面試題關於方法的重寫Java面試題
- 寫個方法,找出指定字串中重複最多的字元及其長度字串字元
- 重寫equals方法以及重寫tostring方法
- Java中String類的常用方法Java
- Day33:String類及其常用方法詳解
- 網頁重寫字串val()方法的擴充套件獲取安全引數String網頁字串套件
- 方法重寫
- Java中final修飾的方法是否可以被重寫Java
- Java-String的常用方法總結!Java
- Java原始碼之String的HashCode方法Java原始碼
- Java中父類方法重寫有哪些需要注意的?Java
- 方法重寫(Override)IDE
- java為什麼要重寫hashCode和equals方法Java
- 二、Java初級--8、繼承和重寫方法Java繼承
- 【JAVA集合】JAVA集合框架及其常用方法Java框架
- Java--String類查詢方法Java
- Java中main方法引數String[ ] args的使用JavaAI
- Java String 去掉特殊字元之前的內容方法Java字元
- 【java】int轉換成String的四種方法Java
- java -繼承 -重寫Java繼承
- 方法重置和重寫的區別
- JavaBean重寫Object類中的方法JavaBeanObject
- 你不知道的Java重寫Java
- Java中的過載和重寫Java
- java基礎鞏固-淺析String原始碼及其不可變性Java原始碼
- java中String類常用方法的使用與例項Java
- String的getBytes()方法
- java~重寫hashcode和equalsJava
- java 重寫知識點Java
- java 中為什麼重寫 equals 後需要重寫 hashCodeJava
- [譯] 如何使用 Pandas 重寫你的 SQL 查詢以及其他操作SQL
- Java—重寫與過載的區別Java
- List<string> 去重
- 軟體測試:Java-String的常用方法總結Java