androidsubstring
Ⅰ android 幾個經常用到的字元串的截取
幾個經常用到的字元串的截取
string str="123abc456";
int i=3;
1 取字元串的前i個字元
str=str.Substring(0,i); // or str=str.Remove(i,str.Length-i);
2 去掉字元串的前i個字元:
str=str.Remove(0,i); // or str=str.Substring(i);
3 從右邊開始取i個字元:
str=str.Substring(str.Length-i); // or str=str.Remove(0,str.Length-i);
4 從右邊開始去掉i個字元:
str=str.Substring(0,str.Length-i); // or str=str.Remove(str.Length-i,i);
5 判斷字元串中是否有"abc" 有則去掉之
using System.Text.RegularExpressions;
string str = "123abc456";
string a="abc";
Regex r = new Regex(a);
Match m = r.Match(str);
if (m.Success)
{
//綠色部分與紫色部分取一種即可。
str=str.Replace(a,"");
Response.Write(str);
string str1,str2;
str1=str.Substring(0,m.Index);
str2=str.Substring(m.Index+a.Length,str.Length-a.Length-m.Index);
Response.Write(str1+str2);
}
6 如果字元串中有"abc"則替換成"ABC"
str=str.Replace("abc","ABC");
************************************************
string str="adcdef"; int indexStart = str.IndexOf("d");
int endIndex =str.IndexOf("e");
string toStr = str.SubString(indexStart,endIndex-indexStart);
c#截取字元串最後一個字元的問題!
str1.Substring(str1.LastIndexOf(",")+1)
Ⅱ android 中如何限制 EditText 最大輸入字元數
方法一:
在 xml 文件中設置文本編輯框屬性作字元數限制
如:android:maxLength="10" 即限制最大輸入字元個數為10
方法二:
在代碼中使用InputFilter 進行過濾
//editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); 即限定最大輸入字元數為20
[java] view plainprint?
01.public class TextEditActivity extends Activity {
02. /** Called when the activity is first created. */
03. @Override
04. public void onCreate(Bundle savedInstanceState) {
05. super.onCreate(savedInstanceState);
06. setContentView(R.layout.main);
07.
08. EditText editText = (EditText)findViewById(R.id.entry);
09. editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
10. }
11.}
public class TextEditActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText editText = (EditText)findViewById(R.id.entry);
editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
}
}
方法三:
利用 TextWatcher 進行監聽
[java] view plainprint?
01.package cie.textEdit;
02.
03.import android.text.Editable;
04.import android.text.Selection;
05.import android.text.TextWatcher;
06.import android.widget.EditText;
07.
08./*
09. * 監聽輸入內容是否超出最大長度,並設置游標位置
10. * */
11.public class MaxLengthWatcher implements TextWatcher {
12.
13. private int maxLen = 0;
14. private EditText editText = null;
15.
16.
17. public MaxLengthWatcher(int maxLen, EditText editText) {
18. this.maxLen = maxLen;
19. this.editText = editText;
20. }
21.
22. public void afterTextChanged(Editable arg0) {
23. // TODO Auto-generated method stub
24.
25. }
26.
27. public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
28. int arg3) {
29. // TODO Auto-generated method stub
30.
31. }
32.
33. public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
34. // TODO Auto-generated method stub
35. Editable editable = editText.getText();
36. int len = editable.length();
37.
38. if(len > maxLen)
39. {
40. int selEndIndex = Selection.getSelectionEnd(editable);
41. String str = editable.toString();
42. //截取新字元串
43. String newStr = str.substring(0,maxLen);
44. editText.setText(newStr);
45. editable = editText.getText();
46.
47. //新字元串的長度
48. int newLen = editable.length();
49. //舊游標位置超過字元串長度
50. if(selEndIndex > newLen)
51. {
52. selEndIndex = editable.length();
53. }
54. //設置新游標所在的位置
55. Selection.setSelection(editable, selEndIndex);
56.
57. }
58. }
59.
60.}
package cie.textEdit;
import android.text.Editable;
import android.text.Selection;
import android.text.TextWatcher;
import android.widget.EditText;
/*
* 監聽輸入內容是否超出最大長度,並設置游標位置
* */
public class MaxLengthWatcher implements TextWatcher {
private int maxLen = 0;
private EditText editText = null;
public MaxLengthWatcher(int maxLen, EditText editText) {
this.maxLen = maxLen;
this.editText = editText;
}
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
Editable editable = editText.getText();
int len = editable.length();
if(len > maxLen)
{
int selEndIndex = Selection.getSelectionEnd(editable);
String str = editable.toString();
//截取新字元串
String newStr = str.substring(0,maxLen);
editText.setText(newStr);
editable = editText.getText();
//新字元串的長度
int newLen = editable.length();
//舊游標位置超過字元串長度
if(selEndIndex > newLen)
{
selEndIndex = editable.length();
}
//設置新游標所在的位置
Selection.setSelection(editable, selEndIndex);
}
}
}
對應的 activity 部分的調用為:
[java] view plainprint?
01.package cie.textEdit;
02.
03.import android.app.Activity;
04.import android.os.Bundle;
05.import android.text.InputFilter;
06.import android.widget.EditText;
07.
08.public class TextEditActivity extends Activity {
09. /** Called when the activity is first created. */
10. @Override
11. public void onCreate(Bundle savedInstanceState) {
12. super.onCreate(savedInstanceState);
13. setContentView(R.layout.main);
14.
15. EditText editText = (EditText) findViewById(R.id.entry);
16. editText.addTextChangedListener(new MaxLengthWatcher(10, editText));
17.
18. }
19.}
package cie.textEdit;
import android.app.Activity;
import android.os.Bundle;
import android.text.InputFilter;
import android.widget.EditText;
public class TextEditActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText editText = (EditText) findViewById(R.id.entry);
editText.addTextChangedListener(new MaxLengthWatcher(10, editText));
}
}
限制輸入字元數為10個
main.xml 文件
[html] view plainprint?
01.<?xml version="1.0" encoding="utf-8"?>
02.<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
03. android:layout_width="fill_parent"
04. android:layout_height="fill_parent">
05. <TextView
06. android:id="@+id/label"
07. android:layout_width="fill_parent"
08. android:layout_height="wrap_content"
09. android:text="Type here:"/>
10. <EditText
11. android:id="@+id/entry"
12. android:singleLine="true"
13. android:layout_width="fill_parent"
14. android:layout_height="wrap_content"
15. android:background="@android:drawable/editbox_background"
16. android:layout_below="@id/label"/>
17. <Button
18. android:id="@+id/ok"
19. android:layout_width="wrap_content"
20. android:layout_height="wrap_content"
21. android:layout_below="@id/entry"
22. android:layout_alignParentRight="true"
23. android:layout_marginLeft="10dip"
24. android:text="OK" />
25. <Button
26. android:layout_width="wrap_content"
27. android:layout_height="wrap_content"
28. android:layout_toLeftOf="@id/ok"
29. android:layout_alignTop="@id/ok"
30. android:text="Cancel" />
31.</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Type here:"/>
<EditText
android:id="@+id/entry"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label"/>
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:text="OK" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/ok"
android:layout_alignTop="@id/ok"
android:text="Cancel" />
</RelativeLayout>
Ⅲ 安卓字元串處理,比如我有個長度為10的字元串,我想要截取掉前5個,只剩後面5個,該用什麼方法
.substring(start, end);
Ⅳ android stdio equals怎麼匹配文字
這樣使用:
String str=「test」;String str2=「test2」;String str3=str+str2; 字元串的操作與Java一樣,支持拼接,截取(substring方法),比對(equals方法)等等。不知道您對字元串操作有什麼需求,或者有什麼疑問呢,您可以繼續追問。
在if的判斷括弧里加上一個感嘆號就行了。 比如: if(a.equals(b))表示判斷a等於b是否成立 if(!a.equals(b))表示判斷a不等於b是否成立
關於在hibernate的pojo類中,重新equals()和hashcode()的問題: 1),重點是equals,重寫hashCode只是技術要求(為了提高效率) 2),為什麼要重寫equals呢,因為在java的集合框架中,是通過equals來判斷兩個對象是否相等的 3),在hibernate中,經。
仔細讀官方的API: Returns true if the string is null or 0-length. 因為你從EditText返回的是一個變數。如果這個變數本身為null值,那麼你掉它的equals方法是要報錯的。但是如果你調用TextUtils.isEmpty() 把這個變數作為參數傳進去。只要這。
Android studio常用快捷設置方法如下: 1.設置滑鼠移到類上面會有說明出現(跟Eclipse對應)。(進入設置界面:File->Settings) 2.快捷鍵Alt+Enter.(自動導包,還有提示一些錯誤的解決方法【如需要加try catch什麼的,會提示】) 3.快捷鍵Alt+In。
1、新建test文件夾在要測試工程目錄的兄弟目錄,新建一個test文件夾,
2、測試代碼我在這個test文件夾中添加了一個類EexampleTest,該類派生自InstrumentationTestCase,並寫了一個方法,完整代碼如下: [java]view plain publicclass。
測試用例是什麼,測試用例其實就是一段普通的程序代碼,通常是帶有期望的運行結果的,測試者可以根據最終的運行結果來判斷程序是否能正常工作。 單元測試是什麼,單元測試是指對軟體中最小的功能模塊進行測試,如果軟體的沒一個單元都能通過測試。
Ⅳ 如何獲取android 進程信息
1.獲取系統的可用內存和總內存。
獲取系統內存中應用的信息,需要用到ActivityManager這個類,然而當你用這個類拿數據的時候你會發現,拿到的數據不正確。用這個類的API獲取系統的總內存和可用內存會出現數據不正確的情況。除了這個類,Android手機中有文件描述了這些信息——/proc/meminfo。meminfo文件中詳細的記錄了安卓手機的一些數據,包括可用內存和總內存。附上代碼:
public static long getTotalMemSize() {
long size=0;
File file = new File("/proc/meminfo");
try {
BufferedReader buffer = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String memInfo = buffer.readLine();
int startIndex = memInfo.indexOf(":");
int endIndex = memInfo.indexOf("k");
memInfo = memInfo.substring(startIndex + 1, endIndex).trim();
size = Long.parseLong(memInfo);
size *= 1024;
buffer.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
return size;
}
public static long getAviableMemSize() {
long size=0;
File file = new File("/proc/meminfo");
try {
BufferedReader buffer = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String memInfos=new String();
int i=0;
while ((memInfos=buffer.readLine())!=null){
i++;
if (i==2){
memInfo = memInfos;
}
}
int startIndex = memInfo.indexOf(":");
int endIndex = memInfo.indexOf("k");
memInfo = memInfo.substring(startIndex + 1, endIndex).trim();
size = Long.parseLong(memInfo);
size *= 1024;
buffer.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
return size;
}
操作很簡單分別是讀取第一行的數據和第二行的數據,將字元串分去出,將所得值乘以1024變為byte類型。
2.獲取內存中運行應用的信息
首先,自然要有一個Bean文件用於存儲這些信息,之後通過ActivityManager的getRunningAppProcesses()方法得到一個RunningAppProcessInfo的List。便利這個List去除我們想要的數據,存在我們的Bean文件夾中。
public static List<TaskBean> getAllTask() {
List<TaskBean>taskList=new ArrayList<>();
List<ActivityManager.RunningAppProcessInfo>runList=UIUtils.getActManager().getRunningAppProcesses();
try {
for (ActivityManager.RunningAppProcessInfo r:runList) {
TaskBean taskBean = new TaskBean();
String processName = r.processName;
taskBean.setPackageName(processName);
PackageInfo packageInfo = UIUtils.getPacManager().getPackageInfo(processName, 0);
taskBean.setIcon(packageInfo.applicationInfo.loadIcon(UIUtils.getPacManager()));
taskBean.setName(packageInfo.applicationInfo.loadLabel(UIUtils.getPacManager()).toString());
Debug.MemoryInfo[] processInfo=UIUtils.getActManager().getProcessMemoryInfo(new int[]{r.pid});
taskBean.setMemSize(processInfo[0].getTotalPrivateDirty()*1024);
if ((packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)!=0){
taskBean.setSystem(true);
}else {
taskBean.setUser(true);
}
if (taskList != null) {
taskList.add(taskBean);
for (int i=0;i<taskList.size();i++) {
if (taskList.get(i).getPackageName().equals(Constants.PACKAGE_INFO)){
taskList.remove(i);
}
}
}
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return taskList;
}
好了,大功告成。當你開開心心的拿到手機上調試的時候你會發現,一個數據都沒有。原來,在Android5.0之後,谷歌處於完全考慮已經棄用了通過如上方法拿到進程中的信息。那麼又應該怎麼做呢?
public static List<TaskBean> getTaskInfos() {
List<AndroidAppProcess> processInfos = ProcessManager.getRunningAppProcesses();
List<TaskBean> taskinfos = new ArrayList<TaskBean>();
// 遍歷運行的程序,並且獲取其中的信息
for (AndroidAppProcess processInfo : processInfos) {
TaskBean taskinfo = new TaskBean();
// 應用程序的包名
String packname = processInfo.name;
taskinfo.setPackageName(packname);
// 湖區應用程序的內存 信息
android.os.Debug.MemoryInfo[] memoryInfos = UIUtils.getActManager()
.getProcessMemoryInfo(new int[] { processInfo.pid });
long memsize = memoryInfos[0].getTotalPrivateDirty() * 1024L;
taskinfo.setMemSize(memsize);
taskinfo.setPackageName(processInfo.getPackageName());
try {
// 獲取應用程序信息
ApplicationInfo applicationInfo = UIUtils.getPacManager().getApplicationInfo(
packname, 0);
Drawable icon = applicationInfo.loadIcon(UIUtils.getPacManager());
taskinfo.setIcon(icon);
String name = applicationInfo.loadLabel(UIUtils.getPacManager()).toString();
taskinfo.setName(name);
if ((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
// 用戶進程
taskinfo.setUser(true);
} else {
// 系統進程
taskinfo.setSystem(true);
}
} catch (PackageManager.NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
// 系統內核進程 沒有名稱
taskinfo.setName(packname);
Drawable icon = UIUtils.getContext().getResources().getDrawable(
R.drawable.ic_launcher);
taskinfo.setIcon(icon);
}
if (taskinfo != null) {
taskinfos.add(taskinfo);
for (int i=0;i<taskinfos.size();i++) {
if (taskinfos.get(i).getPackageName().equals(Constants.PACKAGE_INFO)){
taskinfos.remove(i);
}
}
}
}
return taskinfos;
}
好了,接下來只需要判斷安裝的版本就可以了:
int sysVersion = Integer.parseInt(Build.VERSION.SDK);
taskList = sysVersion > 21 ? TaskManagerEngine.getTaskInfos() : TaskManagerEngine.getAllTask();
好了,大功告成。數據就能正常拿到了。