0
点赞
收藏
分享

微信扫一扫

【达内课程】字符串相关方法


文章目录

  • ​​charAt(int index)​​
  • ​​indexOf(String s)​​
  • ​​toUpperCase()​​
  • ​​toLowerCase()​​
  • ​​length()​​
  • ​​startsWith(String s)​​
  • ​​endsWith(String suffix)​​
  • ​​equals(Object object)​​
  • ​​equalsIgnoreCase(String anotherString)​​
  • ​​trim()​​
  • ​​replace(char oldChar,char newChar)​​
  • ​​subString(int a)​​
  • ​​String.valueOf(数据)​​
  • ​​compareTo(String anotherString)​​
  • ​​compareToIgnoreCase(String str)​​
  • ​​综合练习:提取邮件姓名、判断回文、翻转字符串​​

charAt(int index)

作用:得到指定下标位置的单个字符

String s = "abc";
char c = s.charAt(1);
打印c输出结果:b

indexOf(String s)

作用:返回第一次找到的子串位置

String s = "abc abc abc";
int index1 = s.indexOf("bc");//返回值1
int index2 = s.indexOf("bc", 2);//从2位置向后找,返回值5
int index3 = s.lastIndexOf("bc");//从后向前找,返回值9
int index4 = s.indexOf("de");//不存在返回-1

toUpperCase()

作用:将字符串大写并赋值给一个变量

String s = "abc";
s = s.toUpperCase();
打印s输出结果:ABC

toLowerCase()

作用:将字符串小写并赋值给一个变量

String s = "ABC";
s = s.toLowerCase();
打印s输出结果:abc

length()

作用:获取字符长度

String s = "ABC";
int l = s.length();
打印l输出结果:3

startsWith(String s)

作用:判读是不是以传入字符s为前缀

String s = "http://www.baidu.com";
boolean b = s.startsWith("http://");
打印b输出结果:true

endsWith(String suffix)

作用:判断是不是以传入字符s为后缀结尾

String s = "http://www.baidu.com";
boolean b = s.endsWith(".cn");
打印b输出结果:false

equals(Object object)

作用:比较字符串中所包含的内容是否相同

String s1 = "abc";
String s2 = "abc";
boolean b = s1.equals(s2);
打印b输出结果:true
String s1 = "abc";
String s2 = "ABC";
boolean b = s1.equals(s2);
打印b输出结果:false

equalsIgnoreCase(String anotherString)

作用:忽略大小写比较字符串内容是否相同

String s1 = "abc";
String s2 = "ABC";
boolean b = s1.equalsIgnoreCase(s2);
打印b输出结果:true

trim()

作用:去除两端空白字符

String s = " abc d ";
s = s.trim();
打印s输出结果:abc d

replace(char oldChar,char newChar)

作用:将指定的字符替换为新字符

String s = "abc abc abc";
String s2 = s.replace("a","-");
打印s输出结果:abc abc abc (说明不对原字符串进行修改)
打印s输出结果:-bc -bc -bc

subString(int a)

作用:从位置a到结尾截取字符串

String s = "abcdefg";
String s2 = s.substring(3);//返回值"defg"
String s3 = s.substring(3,5);//左闭右开,返回值"de";

String.valueOf(数据)

作用:把任何数据转换成字符串

int i = 123;
Log.d("TTT", String.valueOf(i));
Log不能直接输出数字,可用此方法把数字转换成字符串再输出

compareTo(String anotherString)

作用:按字符编码顺序比较字符串大小

返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的长度差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。

当前字符串大,返回正数
当前字符串小,返回负数
大小相同,返回0

String str1 = "Strings";
String str2 = "Strings";
String str3 = "Strings123";

int result = str1.compareTo( str2 );
Log.d("TTT", ""+result);//输出:0

result = str2.compareTo( str3 );
Log.d("TTT", ""+result);//输出:-3

result = str3.compareTo( str1 );
Log.d("TTT", ""+result);//输出:3

java中的 compareTo 方法,返回参与比较的前后两个字符串的asc码的差值

String a = "a";
String b = "b";
Log.d("TTT", "" + a.compareTo(b));//输出 -1
String a = "a";
String b = "b";
Log.d("TTT", "" + b.compareTo(a));//输出 1
String s1 = "a";
String s2 = "a";
Log.d("TTT", "" + s1.compareTo(s2));//输出 0

两个字符串首字母不同,则该方法返回首字母的asc码的差值

String a = "abc";
String b = "dfg";
Log.d("TTT", "" + a.compareTo(b));//输出 -3

参与比较的两个字符串如果首字符相同,则比较下一个字符,直到有不同的为止,返回该不同的字符的asc码差值

String a = "abedfg";
String b = "abc";
Log.d("TTT", "" + a.compareTo(b));//输出 2

两个字符串不一样长,可以参与比较的字符又完全一样,则返回两个字符串的长度差值

String a = "abc";
String b = "abcdefg";
Log.d("TTT", "" + a.compareTo(b));//输出 -4
String a = "abc";
String b = "abcdefg";
Log.d("TTT", "" + b.compareTo(a));//输出 4

目前compareTo项目中的用途是比较版本号的高低

String a = "1.0.0";
String b = "1.0.1";
Log.d("TTT", "" + a.compareTo(b));//输出 -1

compareToIgnoreCase(String str)

作用:忽略大小写与另一字符串按编码顺序比较大小

String str1 = "strings";
String str2 = "Strings";

int result = str1.compareTo( str2 );
Log.d("TTT", ""+result);//输出32

int result2 = str1.compareToIgnoreCase( str2 );
Log.d("TTT", ""+result2);//输出0

综合练习:提取邮件姓名、判断回文、翻转字符串

xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提取email名字部分" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="判断是否回文" />

<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="翻转字符串" />

<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="#222"
android:gravity="center"/>
</LinearLayout>

java

public class MainActivity extends AppCompatActivity {
EditText editText;
Button button1;
Button button2;
Button button3;
TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
initListeners();
}

private void initViews() {
editText = findViewById(R.id.editText);
button1 = findViewById(R.id.button1);
button2 = findViewById(R.id.button2);
button3 = findViewById(R.id.button3);
textView = findViewById(R.id.textView);
}

private void initListeners() {
button1.setOnClickListener(view -> f1());
button2.setOnClickListener(view -> f2());
button3.setOnClickListener(view -> f3());
}

private void f1() {
String email = editText.getText().toString();
int index = email.indexOf("@");
if (index == -1) {
textView.setText("格式不正确");
return;
}
String name = email.substring(0, index);
textView.setText(name);
}

private void f2() {
String s = editText.getText().toString();
/*
* abcdefedcba
* i j
* i j
* 判断两个下标变量是否相等
* 如果相等继续比较,直到i<j;i和j没有必要重合
*/
for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
if (s.charAt(i) != s.charAt(j)) {
textView.setText("不是回文");
return;
}
textView.setText("是回文");
}
}

private void f3() {
String s = editText.getText().toString();
String temp = "";
/*
* abc->cba
* i
* i
*i
* 用下标i反向取到字符放入空字符串
*/
for (int i = s.length() - 1; i >= 0; i--) {
temp += s.charAt(i);
}
textView.setText(temp);
}
}

提取邮件姓名 运行结果:
【达内课程】字符串相关方法_android
判断回文 运行结果:

“回文串” 是一个正读和反读都一样的字符串,如“level”或者“noon”等就是回文串
【达内课程】字符串相关方法_string方法_02
翻转字符串 运行结果:

【达内课程】字符串相关方法_字符串方法_03

举报

相关推荐

0 条评论