導航:首頁 > 操作系統 > androidreplaceall

androidreplaceall

發布時間:2023-01-13 21:22:22

android textview參差不齊怎麼解決

解決方法一:
將textview中的字元全形化。即將所有的數字、字母及標點全部轉為全形字元,使它們與漢字同占兩個位元組,這樣就可以避免由於佔位導致的排版混亂問題了。 半形轉為全形的代碼如下,只需調用即可。

public static String ToDBC(String input) {
char[] c = input.toCharArray();
for (int i = 0; i< c.length; i++) {
if (c[i] == 12288) {
c[i] = (char) 32;
continue;
}if (c[i]> 65280&& c[i]< 65375)
c[i] = (char) (c[i] - 65248);
}
return new String(c);
}

解決方法二:
去除特殊字元或將所有中文標號替換為英文標號。利用正則表達式將所有特殊字元過濾,或利用replaceAll()將中文標號替換為英文標號。則轉化之後,則可解決排版混亂問題。

// 替換、過濾特殊字元
public static String StringFilter(String str) throws PatternSyntaxException{
str=str.replaceAll("【","[").replaceAll("】","]").replaceAll("!","!");//替換中文標號
String regEx="[『』]"; // 清除掉特殊字元
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}

2、TextView在顯示中文的時候標點符號不能顯示在一行的行首和行尾,如果一個標點符號剛好在一行的行尾,該標點符號就會連同前一個字元跳到下一行顯示。
解決方法:在標點符號後加一個空格。

3、一個英文單詞不能被顯示在兩行中( TextView在顯示英文時,標點符號是可以放在行尾的,但英文單詞也不能分開 )。

4、如果要兩行對其的顯示效果:有兩種方法
方法一:
修改Android源代碼;將frameworks/base/core/java/android/text下的StaticLayout.java文件中的的如下代碼:

if (c == ' ' || c == '/t' ||
((c == '.' || c == ',' || c == ':' || c == ';') &&
(j - 1 < here || !Character.isDigit(chs[j - 1 - start])) &&
(j + 1 >= next || !Character.isDigit(chs[j + 1 - start]))) ||
((c == '/' || c == '-') &&
(j + 1 >= next || !Character.isDigit(chs[j + 1 - start]))) ||
(c >= FIRST_CJK && isIdeographic(c, true) &&
j + 1 < next && isIdeographic(chs[j + 1 - start], false))) {
okwidth = w;
ok = j + 1;

if (fittop < oktop)
oktop = fittop;
if (fitascent < okascent)
okascent = fitascent;
if (fitdescent > okdescent)
okdescent = fitdescent;
if (fitbottom > okbottom)
okbottom = fitbottom;
}

去掉就可以了。去掉後標點符號可以顯示在行首和行尾,英文單詞也可以被分開在兩行中顯示。

方法二:
自定義View顯示文本
網上就有達人採用自定義View來解決這個問題,我做了實驗並總結了一下:
自定義View的步驟:
1)繼承View類或其子類,例子繼承了TextView類;
2)寫構造函數,通過XML獲取屬性(這一步中可以自定義屬性,見常式);
3)重寫父類的某些函數,一般都是以on開頭的函數,例子中重寫了onDraw()和onMeasure()函數;

❷ android去掉字元串所有空格

在開發項目過程中,有時候請求介面時需要給伺服器傳遞數據,而自己在輸入框中輸入的數據有可能會帶有空格,這個空格有可能是首尾有空格,有可能是字元串中間有空格,而這個空格是必須去掉的,我們可以採用下邊方式來去掉空格。

去掉首尾空格 - trim():
str.getText().toString().trim();
去掉所有空格 - replaceAll(" " , 「」) ;
str.getText().toString().replaceAll(" " , 「」) ;

❸ android字元串提取問題

Pattern.compile("(\\81..00\\+0)|\\82..00\\+0)|\\83..00\\+0)")

正則表達式問題

❹ android中array.tostring(num).replaceall("[\\[\\],

(需要替換的字元,替換的字元),這個語句就是字元串替換

❺ android 判斷是否為正斜杠

android 中判斷是否為正斜杠,可以使用正則表達式的形式來判斷,可以進行替換,如下代碼:

publicclassTest{
publicstaticvoidmain(String[]args){
Stringpath="D:\FTP\admin\bird.gif";
System.out.println(path);
//JAVA中正則表達式,用"\\"表示""
path=path.replaceAll("\\","/");
System.out.println(path);
}
}

不過在windows中文件的路徑和linux的文件路徑符號都不一樣,有時候需要通過file類來獲得系統的路徑分隔符,來進行判斷。

❻ Android怎麼用正則表達式替換字元串某些字元

Strings1="www..com";

System.out.println(s1);

s1=s1.replaceAll("\.","/");

System.out.println(s1);

❼ Android開發常見異常與錯誤系列(一)

一、前言

這系列文章是自己在平時開發過程中遇到的問題。之前只是記在雲筆記上面,現在整理一下,發出來共享。

ps:像那些什麼沒有注冊Activity呀,許可權呀等最基本的就不再贅述。

二、ADB連接異常

有時我們發現,即使自己從任務管理器裡面把adb.exe給幹掉了,但還是不行,這時,你就可以嘗試以下操作:

[2014-07-30 17:09:11 - QtActivity] The connection to adb is down, and a severe error has occured.

[2014-07-30 17:09:11 - QtActivity] You must restart adb and Eclipse.

[2014-07-30 17:09:11 - QtActivity] Please ensure that adb is correctly located at 『D:\InstallFile\AndroidDevelop\ADT\sdk\platform-tools\adb.exe』 and can be executed.

adb起動失敗:

1,殺掉其它的adb.exe看,如果不行,

2,看sdk\tools路徑下面有沒有

hprof-conv.exe

如果有,則把它復制到sdk\platform_tools下

3,如果沒有,剛看sdk\platform_tools下有沒有

hprof-conv.exe

如果有,剛復制到tools下。

4,如果兩者都沒有,剛下一個

hprof-conv.exe

三、java.lang.IllegalStateException: Activity has been destroyed

這個異常在切換Fragment中比較容易出現,稍不注意就會出現如下異常:

FATAL EXCEPTION: main12-0909:20:14.689: E/AndroidRuntime(31223): java.lang.IllegalStateException: Activity has been destroyed12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1365)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)12-0909:20:14.689: E/AndroidRuntime(31223): at cn.com.topsky.community.tfd.DongTaiFragment.init(DongTaiFragment.java:209)12-0909:20:14.689: E/AndroidRuntime(31223): at cn.com.topsky.community.tfd.DongTaiFragment.onCreateView(DongTaiFragment.java:68)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)12-0909:20:14.689: E/AndroidRuntime(31223): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)12-0909:20:14.689: E/AndroidRuntime(31223): at android.os.Handler.handleCallback(Handler.java:605)12-0909:20:14.689: E/AndroidRuntime(31223): at android.os.Handler.dispatchMessage(Handler.java:92)12-0909:20:14.689: E/AndroidRuntime(31223): at android.os.Looper.loop(Looper.java:154)12-0909:20:14.689: E/AndroidRuntime(31223): at android.app.ActivityThread.main(ActivityThread.java:4624)12-0909:20:14.689: E/AndroidRuntime(31223): at java.lang.reflect.Method.invokeNative(Native Method)12-0909:20:14.689: E/AndroidRuntime(31223): at java.lang.reflect.Method.invoke(Method.java:511)12-0909:20:14.689: E/AndroidRuntime(31223): atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)12-0909:20:14.689: E/AndroidRuntime(31223): atcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)12-0909:20:14.689: E/AndroidRuntime(31223): at dalvik.system.NativeStart.main(Native Method)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

經查,說這個是當前android-support-v4版本的一個bug,因為在當fragment進行到detached狀態時,它會重置它的內部狀態。

然而,它並沒有重置mChildFragmentManager.這導致在Fragment重新attach時,它(fragment)沒有重新attachm childFragmentManager,從而引發了上面的異常.

解決方案:

在每個調用getChildFragmentManager()的fragment中復寫onDetach()方法:

@OverridepublicvoidonDetach() {super.onDetach();try{Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager");childFragmentManager.setAccessible(true);childFragmentManager.set(this,null);}catch(NoSuchFieldException e) {thrownewRuntimeException(e);}catch(IllegalAccessException e) {thrownewRuntimeException(e);}}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

四、java.lang.IllegalArgumentException: Illegal character in query at index

這個異常,在我們拼接請求參數時,可能會碰到,原因是裡面的特殊字元轉換異常。解決辦法如下:

url轉換問題

String url = baseUrl + 「?」 + 「name=」 + name + 「&age=」 + age;

url = url.replaceAll(「&」, 「%26」);

url = url.replaceAll(」 「, 「%20」);

解釋如下:

特殊符號替換符號

?%3F

&%26

|%124

=%3D

#%23

/%2F

+%2B

%%25

空格%20

五、eclipse連接小米2S調試程序的問題

雖然快2年沒用過eclipse了,但這個問題還是貼出來,也許正好有正在用eclipse的同學遇到了此問題:

小米Mi2S連接到eclipse上無法識別。即使開啟了調試模式,也無法識別.終於找到了一個可用的方法。

方法

用數據線連接手機和電腦。

打開手機撥號界面。

在撥號界面按 # #717717# # 自動就開啟了。

在通知欄會出現一個 Diag USB port enable。

當然,應該是需要ROOT許可權的。

這時候你的PC機會彈出安裝設備驅動。

如果不成功,多插拔幾次試試。

ok!安裝完就搞定了!這時候打開eclipse就會在Driver裡面看到你的手機了。

注意事項

在PC機上安裝新硬體向導時候可能會遭遇到缺少dll文件,比如我就遇到缺少了WinUSBCoInstaller2.dll,這個問題。這時候就要去網上找找嘍。這個東西分x64 和 x86的,注意不要搞錯了!

如果先打開eclipse,再安裝的話,可能導致eclipse掛掉,不明原因,可能是我機器配置不行。兩次均有這種狀況。所以建議先安裝後再開eclipse。

❽ android textview怎麼處理換行

你用string的replaceall()這個方法,把所有的數字都變成全形的,把所有的字母也變成 全形的,這樣你的textview就整齊了

❾ android中獲取文件名之後刪除文件名中的下劃線和數字

String filename = "_adgdfsf.txt";
filename = filename.replaceAll("_","");
filename = filename.replaceAll("\\d","");

❿ 為什麼android在線程中請求網路數據會報錯去掉線程就好了,有沒有大神知道,急!!下面是加 了線程的代碼

Toast.makeText(getApplicationContext(), result, 1).show();
本質是進行UI更新
需要在主線程下調用
網路訪問的處理結果需要通過handler發送消息
然後在handler內對接收到的不同消息進行分別處理
handler是運行在主線程下, 可以進行UI更新

閱讀全文

與androidreplaceall相關的資料

熱點內容
工商app積分怎麼查詢 瀏覽:143
鐵路app怎麼買火車票 瀏覽:309
移魅族除的app怎麼添加 瀏覽:240
兔籠子大號加密 瀏覽:171
單片機程序燒錄操作成功 瀏覽:878
指標高拋低吸點位源碼 瀏覽:205
25匹壓縮機銅管 瀏覽:570
單片機單燈左移05 瀏覽:150
買伺服器練手什麼配置 瀏覽:783
伺服器被毀該怎麼辦 瀏覽:939
python私有庫 瀏覽:514
Python有中文嗎 瀏覽:736
麥塊的伺服器為什麼都進不去 瀏覽:474
新買的伺服器如何打開 瀏覽:35
安卓軟體游戲怎麼開發 瀏覽:319
用撲克擺愛心解壓神器怎麼擺 瀏覽:70
松下製冷壓縮機 瀏覽:275
pdf里怎麼修改文字 瀏覽:686
已保存文檔加密如何設置 瀏覽:413
怎樣判斷加密貨幣是牛是熊 瀏覽:948