文字列処理strLeft、strRight、strLeftBack、strRightBackのJavaヘルプクラス


1、符号化作業では、1文字列の1番目のサブ文字列の左の文字列、1番目のサブ文字列の右の文字列、最後のサブ文字列の左の文字列、最後のサブ文字列の右の文字列を取得する必要があります[email protected]@test.comの最初の@左の文字列、最初の@右の文字列、最後の@左の文字列、最後の@右の文字列は、実は処理も簡単ですが、出会うたびに開発するのはちょっと面倒で、ヘルプクラスの問題を整理して形成します.
2、以前Lotus Domino/Notesの下で開発したことがあり、プラットフォームが提供するStrLeft、StrRight、StrLeftBack、StrRightBackのいくつかの方法(式)を使用して、実現する機能を達成することができ、その命名実現に関する機能コードを参照する.
3、いくつかの場合の処理規則:
(1)処理された文字列はnullまたは空であり、空を返す.
(2)検索されたサブ文字列はnullまたは空であり、空を返す.
(3)処理された文字列に検索されたサブ文字列が存在せず、空を返す.
(4)処理された文字列に検索されたサブ文字列が存在する場合、関連する文字列の内容を返す.
4、実装コード

package cn.basttg.java.util;

public class StringUtil {

	public static String strLeft(final String text, String subtext) {
		if(!hasText(text) || !hasText(subtext)) {
			return "";
		}
		
		int find = text.indexOf(subtext);
		return (find!=-1) ? text.substring(0, find) : "";
	}
	
	public static String strRight(final String text, String subtext) {
		if(!hasText(text) || !hasText(subtext)) {
			return "";
		}
		
		int find = text.indexOf(subtext);
		return (find!=-1) ? text.substring(find+1) : "";
	}

	public static String strLeftBack(final String text, String subtext) {
		if(!hasText(text) || !hasText(subtext)) {
			return "";
		}
		
		int find = text.lastIndexOf(subtext);
		return (find!=-1) ? text.substring(0, find) : "";
	}
	
	public static String strRightBack(final String text, String subtext) {
		if(!hasText(text) || !hasText(subtext)) {
			return "";
		}
		
		int find = text.lastIndexOf(subtext);
		return (find!=-1) ? text.substring(find+1) : "";
	}
	
	private static boolean hasText(String text) {
		return (text!=null) && (!"".equals(text));
	}
}


5、テストコード

public static void main(String[] argus) {
	String strEmpty = "";
	String strNull = null;
	String text = "[email protected]@test.com";
	String subtext = "@";

	System.out.println("strLeft(" + strEmpty + "," + strEmpty + ")=" + strLeft(strEmpty,strEmpty));
	System.out.println("strLeft(" + strEmpty + "," + strNull + ")=" + strLeft(strEmpty,strNull));
	System.out.println("strLeft(" + strEmpty + "," + subtext + ")=" + strLeft(strEmpty,subtext));
	System.out.println("strLeft(" + strNull + "," + strEmpty + ")=" + strLeft(strNull,strEmpty));
	System.out.println("strLeft(" + strNull + "," + strNull + ")=" + strLeft(strNull,strNull));
	System.out.println("strLeft(" + strNull + "," + subtext + ")=" + strLeft(strNull,subtext));
	System.out.println("strLeft(" + text + "," + strEmpty + ")=" + strLeft(text,strEmpty));
	System.out.println("strLeft(" + text + "," + strNull + ")=" + strLeft(text,strNull));
	System.out.println("strLeft(" + text + "," + subtext + ")=" + strLeft(text,subtext));

	System.out.println();
	System.out.println("strRight(" + strEmpty + "," + strEmpty + ")=" + strRight(strEmpty,strEmpty));
	System.out.println("strRight(" + strEmpty + "," + strNull + ")=" + strRight(strEmpty,strNull));
	System.out.println("strRight(" + strEmpty + "," + subtext + ")=" + strRight(strEmpty,subtext));
	System.out.println("strRight(" + strNull + "," + strEmpty + ")=" + strRight(strNull,strEmpty));
	System.out.println("strRight(" + strNull + "," + strNull + ")=" + strRight(strNull,strNull));
	System.out.println("strRight(" + strNull + "," + subtext + ")=" + strRight(strNull,subtext));
	System.out.println("strRight(" + text + "," + strEmpty + ")=" + strRight(text,strEmpty));
	System.out.println("strRight(" + text + "," + strNull + ")=" + strRight(text,strNull));
	System.out.println("strRight(" + text + "," + subtext + ")=" + strRight(text,subtext));

	System.out.println();
	System.out.println("strLeftBack(" + strEmpty + "," + strEmpty + ")=" + strLeftBack(strEmpty,strEmpty));
	System.out.println("strLeftBack(" + strEmpty + "," + strNull + ")=" + strLeftBack(strEmpty,strNull));
	System.out.println("strLeftBack(" + strEmpty + "," + subtext + ")=" + strLeftBack(strEmpty,subtext));
	System.out.println("strLeftBack(" + strNull + "," + strEmpty + ")=" + strLeftBack(strNull,strEmpty));
	System.out.println("strLeftBack(" + strNull + "," + strNull + ")=" + strLeftBack(strNull,strNull));
	System.out.println("strLeftBack(" + strNull + "," + subtext + ")=" + strLeftBack(strNull,subtext));
	System.out.println("strLeftBack(" + text + "," + strEmpty + ")=" + strLeftBack(text,strEmpty));
	System.out.println("strLeftBack(" + text + "," + strNull + ")=" + strLeftBack(text,strNull));
	System.out.println("strLeftBack(" + text + "," + subtext + ")=" + strLeftBack(text,subtext));

	System.out.println();
	System.out.println("strRightBack(" + strEmpty + "," + strEmpty + ")=" + strRightBack(strEmpty,strEmpty));
	System.out.println("strRightBack(" + strEmpty + "," + strNull + ")=" + strRightBack(strEmpty,strNull));
	System.out.println("strRightBack(" + strEmpty + "," + subtext + ")=" + strRightBack(strEmpty,subtext));
	System.out.println("strRightBack(" + strNull + "," + strEmpty + ")=" + strRightBack(strNull,strEmpty));
	System.out.println("strRightBack(" + strNull + "," + strNull + ")=" + strRightBack(strNull,strNull));
	System.out.println("strRightBack(" + strNull + "," + subtext + ")=" + strRightBack(strNull,subtext));
	System.out.println("strRightBack(" + text + "," + strEmpty + ")=" + strRightBack(text,strEmpty));
	System.out.println("strRightBack(" + text + "," + strNull + ")=" + strRightBack(text,strNull));
	System.out.println("strRightBack(" + text + "," + subtext + ")=" + strRightBack(text,subtext));
}

6、出力結果は以下の通り:

strLeft(,)=
strLeft(,null)=
strLeft(,@)=
strLeft(null,)=
strLeft(null,null)=
strLeft(null,@)=
strLeft([email protected]@test.com,)=
strLeft([email protected]@test.com,null)=
strLeft([email protected]@test.com,@)=test

strRight(,)=
strRight(,null)=
strRight(,@)=
strRight(null,)=
strRight(null,null)=
strRight(null,@)=
strRight([email protected]@test.com,)=
strRight([email protected]@test.com,null)=
strRight([email protected]@test.com,@)[email protected]

strLeftBack(,)=
strLeftBack(,null)=
strLeftBack(,@)=
strLeftBack(null,)=
strLeftBack(null,null)=
strLeftBack(null,@)=
strLeftBack([email protected]@test.com,)=
strLeftBack([email protected]@test.com,null)=
strLeftBack([email protected]@test.com,@)[email protected]

strRightBack(,)=
strRightBack(,null)=
strRightBack(,@)=
strRightBack(null,)=
strRightBack(null,null)=
strRightBack(null,@)=
strRightBack([email protected]@test.com,)=
strRightBack([email protected]@test.com,null)=
strRightBack([email protected]@test.com,@)=test.com

7、テスト出力結果から、実装コードが正しいことがわかる.