㈠ java中如何去除字元串前後的全形空格(當中保留)
自己寫一個方法,使用split()去除角空格以及全形空格!~ split()返回是String[],後再組合成一個String
public String[] split(String regex)根據給定正則表達式的匹配拆分此字元串。
該方法的作用就像是使用給定的表達式和限制參數 0 來調用兩參數 split 方法。因此,所得數組中不包括結尾空字元串。
例如,字元串 "boo:and:foo" 使用這些表達式可生成以下結果:
Regex 結果
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }
參數:
regex - 定界正則表達式
返回:
字元串數組,它是根據給定正則表達式的匹配拆分此字元串確定的,,
根據你的要求重新編寫了以個程式,測試OK,
代碼如下:
class StrTest{
static String stringTest(String s){
int j=0,k=0,i=0;
char[] stra=new char[s.length()];
s.getChars(0,s.length(),stra,0);
for(i=0;i<s.length();i++){
if(stra[i]==' '||stra[i]==' '){
j=i+1;
}
else
{
break;
}
}
for(i=s.length()-1;i+1>0;i--){
if(stra[i]==' '||stra[i]==' '){
k=i;
}
else{
break;
}
}
String strb=new String(stra,j,k-j);
return strb;
}
public static void main(String[] args){
String str=new String(" a test test ");
System.out.println(stringTest(str));
}
}
你可以更改 String str=new String(" a test test "); 來測試
㈡ java如何識別全形字元
publicclassCHar{
publicstaticvoidmain(String[]args){
inti;
Stringmystr="你好,hello";
System.out.println(mystr);
for(i=0;i<mystr.length();i++){
charch;
ch=mystr.charAt(i);//單個地獲取每個字元
if((int)ch>255)//如果字元轉換為整數大於255說明是全形字元
System.out.print(ch+":全");
else
System.out.print(ch+":半");
}
}
}
㈢ java中全形,半形判斷
我來學習了
㈣ Java substring全形
String a = "....";
if (a.charAt(2).getBytes().length == 2) {
// 全形
} else {
// 半形
a = a.subString(0,2);
}
㈤ java截取字元串 一個字元串中可能包含全形半形字元,以每6個位元組為一段,把結果放到list中。
public static void main(String[] args){
String str="輪LRW愛JAVA吖";
List<String> result = new ArrayList<String>();
for(int i=0;i<str.length();){
StringBuilder substr = new StringBuilder("");
for(int j=0;j<6;){
if(i>=str.length()) break;
if(str.charAt(i)>255){
j +=2;
}else{
j++;
}
if(j<=6){
substr.append(str.charAt(i));
i++;
}
}
if(!substr.equals("")){
result.add(substr.toString());
}
}
System.out.println(Arrays.toString(result.toArray()));
}
輸出結果為
[輪LRW, 愛JAV, 吖]
㈥ java 全形半形字元轉換如何實現
開始,偏移值為65281*/static final char SBC_CHAR_START = 65281; // 全形!/*** 全形對應於ASCII表的可見字元到~結束,偏移值為65374*/static final char SBC_CHAR_END = 65374; // 全形~/*** ASCII表中除空格外的可見字元與對應的全形字元的相對偏移*/static final int CONVERT_STEP = 65248; // 全形半形轉換間隔/*** 全形空格的值,它沒有遵從與ASCII的相對偏移,必須單獨處理*/static final char SBC_SPACE = 12288; // 全形空格 12288/*** 半形空格的值,在ASCII中為32(Decimal)*/static final char DBC_SPACE = ' '; // 半形空格/*** <PRE* 半形字元-全形字元轉換 * 只處理空格,!到˜之間的字元,忽略其他* </PRE*/private static String bj2qj(String src) { if (src == null) { return src;}StringBuilder buf = new StringBuilder(src.length()); char[] ca = src.toCharArray(); for (int i = 0; i < ca.length; i++) { if (ca[i] == DBC_SPACE) { // 如果是半形空格,直接用全形空格替代 buf.append(SBC_SPACE); } else if ((ca[i] = DBC_CHAR_START) && (ca[i] <= DBC_CHAR_END)) { // 字元是!到~之間的可見字元 buf.append((char) (ca[i] + CONVERT_STEP)); } else { // 不對空格以及ascii表中其他可見字元之外的字元做任何處理 buf.append(ca[i]);}}return buf.toString();}/*** <PRE* 全形字元-半形字元轉換 * 只處理全形的空格,全形!到全形~之間的字元,忽略其他* </PRE*/public static String qj2bj(String src) { if (src == null) { return src;}StringBuilder buf = new StringBuilder(src.length()); char[] ca = src.toCharArray(); for (int i = 0; i < src.length(); i++) { if (ca[i] = SBC_CHAR_START && ca[i] <= SBC_CHAR_END) { // 如果位於全形!到全形~區間內 buf.append((char) (ca[i] - CONVERT_STEP)); } else if (ca[i] == SBC_SPACE) { // 如果是全形空格 buf.append(DBC_SPACE); } else { // 不處理全形空格,全形!到全形~區間外的字元 buf.append(ca[i]);}}return buf.toString();}public static void main(String[] args) { System.out.println(StringUtils.trimToEmpty(" a,b ,c ")); String s = "nihaohk|nihehe,。787";
㈦ 關於Java中的字元串包含空格,全形空格和半形空格的區別
關於Java中的字元串包含空格,全形空格和半形空格的區別。
1.Character.isWhitespace()認為全形和半形空格都為空格,即返回true
2.Character.isSpaceChar()認為全形和半形空格都為空格,即返回true
3.Character.isSpace()只認為半形空格為空格,即半形空格返回true,全形空格返回false,但是此方法不被贊成使用。
4.trim()時,只能截取掉半形的空格,而不能將全形的空格給去掉。
㈧ JAVA里如何剔除 ♢ ■ △ ⊙ 這一類非文字的全形字元
你的題目是剔除。
詳細里是怎麼判斷含有非法字元。
含有可以用正規的查找。
下邊是代碼。
---------------------------------------------------------------------------------------------------
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CharExits {
public static void main(String[] args) {
String str = "asdfk♢■⊙";
// 刪除
StringBuffer buff = new StringBuffer(str);
String chars = "♢■△⊙";
for (int i = 0; i < chars.length(); i++) {
while (true) {
int index = buff.indexOf(chars.substring(i, i + 1));
if (index == -1) {
break;
}
buff = buff.deleteCharAt(index);
}
}
System.out.println(buff.toString());
// 怎麼判斷含有非法字元
String partten = "[♢|■|△|⊙]";
Pattern p = Pattern.compile(partten);
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(m.group());
}
}
}
㈨ java實現將字元串中的半形轉換為全形
/**
* 半形轉全形
* @param input String.
* @return 全形字元串.
*/
public static String ToSBC(String input) {
char c[] = input.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == ' ') {
c[i] = '\u3000';
} else if (c[i] < '\177') {
c[i] = (char) (c[i] + 65248);
}
}
return new String(c);
}
網上都能找到,方法好多
㈩ java判斷全形程度怎麼判斷
//根據編碼來達成你的要求。
//默認編碼
Stringmsg="我的長度是十四";
intlen=msg.getBytes().length;
System.out.println(len);
//UTF-8是21
//UTF-16是16
//UTF-32是28
//Unicode是16
你可以自己列印試試