字符串(String):是用一对双引号括起来的零个或多个字符组成的有限序列。在Java中,字符串被当作对象来处理。
程序中需要用到的字符串可以分为两大类:
String类:创建之后不会再做修改和变动的字符串常量;
StringBuffer类:创建之后允许再做更改和变化的字符串变量。
一:找处连续最长数字串
题目:
在字符串中找出连续最长数字串,返回这个串的长度,并打印这个最长数字串。
例如:abcd12345cd125se123456789,返回9,打印出123456789
public class String_test01 {
public static void main(String[] args) {
String str = "abcd12345cd125se123456789";
//去掉前面的字母
str = str.replaceAll("^[a-zA-Z]+", "");
//[a-zA-Z]表示字母的范围
//+表示一次或多次
String[] arr1 = str.split("[a-zA-Z]+");
String max = "";
//增强for循环
for(String s1 : arr1){
if(s1.length() > max.length()){
max = s1;
}
}
System.out.println("最长的数字串为:"+max+",该数字串长度为:"+max.length());
}
}
二:去掉字符串两端的空格
实现去除字符串两端的空格:
方法一:使用String 的API trim()(弊端:用API方法,不会去除中间的方法)
public class String_test02 {
public static void main(String[] args) {
//1.使用String API trim()
String str = " abc 9 ";
String s = str.trim();
System.out.println("去除后的字符串为:"+s);
}
}
//打印结果为:abc 9 (注意:用API方法,不会去除中间的方法)
方法二:
public class String_test02 {
public static void main(String[] args) {
String str = " abc 9 ";
//将字符串传递过去
System.out.println(MyString2(str));
}
public static String MyString3(String str){
//利用正则表达式
//^表示开头 \s表示 空白符 *表示0次或多次 |表示或者 $表示结尾
return str.replaceAll("(^\\s*)|(\\s*$)", "");
}
public static String MyString2(String str){
while (str.startsWith(" ")){
str = str.replace(" ","");
}
while (str.endsWith(" ")){
str = str.substring(0,str.length()-1);
}
return str;
}
//判断字符串的前后是否有空格
public static String MyString(String str){
char[] arr = str.toCharArray();//将此字符串转换为一个新的字符数组
int start = 0;
for (int i = start; i < str.length(); i++) {
if(arr[i] == ' ' ){
start++;
}else {
break;
}
}
int end = arr.length-1;
for (int i = end; i >= 0; i--) {
if(arr[i]==' '){
end--;
}else {
break;
}
}
String result = str.substring(start,end+1);
return result;
}
}
//打印结果:abc9
三:字符串反转
将字符串中指定部分进行反转。比如将“abcdefgho”实现部分反转,结果为”abfedcgho”
public class String_test03 {
public static void main(String[] args) {
//指定字符串反转
String str = "abcdefgho";
System.out.println(res1(str,2,5));
System.out.println(res2(str,2,5));
}
public static String res1(String str,int start,int end){
char[] array = str.toCharArray();//将此字符串转化为一个新的字符串
for(int i=start,j=end;i<j;i++,j--){
char temp = array[i];
array[i]=array[j];
array[j]=temp;
}
String s= new String(array);
return s;
}
public static String res2(String str,int start,int end){
String ligft = str.substring(0,start);
String midle = str.substring(start,end+1);
String night = str.substring(end+1);
return ligft+new StringBuffer(midle).reverse()+night;
}
}
用的API方法:
四:QQ格式验证
键盘录入QQ号码,验证格式的正确性。
必须是5—12位数字。
0不能开头。
import java.util.Scanner;
public class String_test04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入qq号码:");
String qq = sc.next();
System.out.print("这个qq号是否正确:");
if(qq.matches("[1-9][0-9]{4,11}+")){
System.out.println(true);
}else{
System.out.println(false);
}
input.close();
}
}
五:判断回文字符串
如果一个字符串,从前向后读和从后向前读,都是一个字符串,称为回文串,比如mom,dad,noon。
方法一:
public class String_test05 {
public static void main(String[] args) {
String str = "noon";
System.out.println(str);
StringBuilder s = new StringBuilder(str);
String string = s.reverse().toString();
System.out.print("回文数:");
if(str.equals(string)){
System.out.println(true);
}else{
System.out.println(false);
}
}
}
方法二:
public class String_test05 {
public static void main(String[] args) {
String str = "noon";
System.out.println(str);
char[] arr = str.toCharArray();
boolean flag = true;
for (int left = 0,right=arr.length-1; left <=right; left++,right--) {
if(arr[left] != arr[right]){
flag = false;
break;
}
}
System.out.print("回文数:");
if(flag){
System.out.println(true);
}else{
System.out.println(false);
}
}
}
标签:知识,String,练习,System,str,字符串,public,out From: https://blog.csdn.net/2301_76613040/article/details/137210464本文先简单的使用了五道字符串例题,实现了String一些基本的API使用方法,如果对你有帮助的话,点赞+关注哦,我会持续更新有关字符产的习题的!!!