java字元串格式
1. 在java里,什麼是格式化字元串
格式化字元串就是按一定格式輸出的字元串
舉個例子來說,你想輸出時間
2006-07-25
21:20:30
這就是一個格式化字元串,它的格式為
yyyy-mm-dd
hh:mm:ss
下面再給你一個操作的例子,比如說你要輸出時間
formatdatetime('yyyy-mm-dd
hh:mm:ss',now);
就能夠按我上面的格式輸出時間了
又比如說你經過計算得到一個結果,你想用一個有格式的字元串輸出
例如:計算結果是xxx,那麼可以這樣寫:
format('計算結果是%d',[result]);
我給出的是delphi代碼,如果你用c的,用printf語句也可以實現
printf("計算結果是%d",result);
2. java判斷字元串格式
數字
booleanb="000-000-000".matches("\d{3}-\d{3}-\d{3}");
System.out.println(b);
以下為所有字元
booleanb="阿三A-sss-000"
.matches("(\d{3}||\D{3}||\w{3}||\W{3}||^\w{3}||^\d{3}||^\D{3}||^\W{3})
-(\d{3}||\D{3}||\w{3}||\W{3}||^\w{3}||^\d{3}||^\D{3}||^\W{3})
-(\d{3}||\D{3}||\w{3}||\W{3}||^\w{3}||^\d{3}||^\D{3}||^\W{3})");
System.out.println(b);
如需其他的請私聊
3. 請問java如何改變字元串的編碼方式
byte[] b=string.getBytes("GB2312");//使用GB2312編碼方式對字元串string進行編碼
//這時要想將位元組數組b的內容正確解碼只能使用GB2312的編碼方式進行解碼,即
String str=new String(b,"GB2312");//這里若使用UTF-8編碼方式來進行解碼就會亂碼
//將eclipse默認的編碼方式改為UTF-8,只是用該編碼方式對.java源文件進行編碼保存
//這個對new String(string.getBytes("GB2312"),"UTF-8")沒啥影響的
//因為從java源文件獲取字元串string時,已經通過UTF-8編碼方式進行解碼了
//而string.getBytes("GB2312")是使用指定的編碼方式對字元串string進行從新編碼
//這兩者之間沒啥關系的
4. java 字元串格式輸出
public static void main(String[] args) {
int i = 1234;
System.out.println(addZero(i,5));
int j = 12345;
System.out.println(addZero(j,5));
int k = 123456;
System.out.println(addZero(k,5));
}
public static String addZero(int c, int Length) {
String strC = Integer.toString(c);
int strLen = strC.length();
StringBuffer sb = null;
while (strLen < Length) {
sb = new StringBuffer();
sb.append("0").append(strC);
strC = sb.toString();
strLen = strC.length();
}
return strC;
}
5. 怎麼 知道 java字元串 編碼格式
這樣的測試方法是不正確的。getBytes(charset)是解碼,new
String(byte[],
charset)是編碼。new
String(str.getBytes(charset),charset)是解碼再編碼,無論charset是什麼編碼格式,返回的字元串內容原始str是一致,因此equals方法都是返回true,達不到測試字元串編碼格式的目的。個人觀點:正確的測試姿勢應該是這樣的:
String charset ="xxx"; //假定編碼格式
String str = "中文";
boolean flag = str.equals(new String(str.getBytes(),charset));flag為true則表明str的編碼格式是假定的編碼格式。其中說明str.getBytes()該方法就是按其自身編碼格式去解碼。其自身編碼格式跟你的操作系統編碼格式或你使用的IDE設置的文件的Text
file
encoding有關。