final修饰和StringBuffer的几个案例(拼接,反转,对称操作)

news/2024/11/14 11:47:13 标签: java

final关键字修饰时如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象,但引用变量不能变,引用变量所指向的对象中的内容还是可以改变的

final 与static final修饰变量区别

final修饰的值是可以改变内容不能改变引用地址。static fina修饰的因为它是static,在装载时已被初始化,而不是每次创建新对象时都初始化。所以内容也不可以改变

常用static final同时修饰一些常量

StringBuffer的几个案例

 

1、
  把数组拼接成一个字符串

复制代码
 1 public class StringBufferTest2 {
 2 
 3 public static void main(String[] args) {
 4 //定义一个数组
 5 int[] arr = {12,21,33,9,2};
 6 
 7 //方式1:定义功能,使用String做拼接
 8 String s1 = arrayToString(arr);
 9 System.out.println("String拼接的方法:"+s1);
10 
11 //方式2:定义功能能,使用StringBuffer做拼接
12 String s2 = arrayToString2(arr);
13 System.out.println("StringBuffer拼接的方法:"+s2);
14 
15 }
16 
17 public static String arrayToString(int[] arr) {
18 //定义一个[的字符串
19 String s = "[";
20 //进行数组的遍历以及转换为字符串
21 
22 for(int x=0;x<arr.length;x++){
23 if(x == arr.length-1){
24 s += arr[x]+"]";
25 }
26 else{
27 s += arr[x]+",";
28 }
29 }
30 return s;
31 }
32 
33 public static String arrayToString2(int[] arr) {
34 
35 //定义一个"["的StringBuffer的缓冲区
36 StringBuffer sb = new StringBuffer();
37 sb.append("[");
38 
39 //进行数组的遍历,以及转换为StringBuffer缓冲区
40 for(int x=0;x<arr.length;x++){
41 if(x == arr.length-1){
42 sb.append(arr[x]);
43 }
44 else{
45 sb.append(arr[x]).append(",");
46 }
47 }
48 sb.append("]");    
49 //StringBuffer 转换成 String
50 return sb.toString();    
51 }
52 }
复制代码

 

2、
   把字符串反转

复制代码
 1 import java.util.Scanner;
 2 public class StringBufferTest3 {
 3 
 4 public static void main(String[] args) {
 5 Scanner sc = new Scanner(System.in);
 6 System.out.println("请输入想要反转的数据");
 7 String str = sc.nextLine();
 8 
 9 //调用方法1 reverse1
10 String result = reverse1(str);
11 System.out.println("反转后的数据:"+result);
12 
13 //调用方法2 reverse2
14 String result2 = reverse2(str);
15 System.out.println("反转后的数据:"+result2);
16 }
17 
18 //方式1:用String的方法
19 public static String reverse1(String s){
20 
21 //定义一个[的字符串
22 String s1 = "";
23 
24 //把字符串转成数组
25 char[] ch = s.toCharArray();
26 
27 //进行数组的元素遍历以及字符串的拼接
28 for(int x = ch.length-1;x >= 0;x--){
29 
30 if(x == 0){
31 s1 += ch[x];    
32 }
33 else{
34 s1 += ch[x];    
35 }
36 }
37 return s1;
38 }
39 
40 //方式2,利用StringBuffer的反转方法 
41 public static String reverse2 (String s){
42 
43 //把输入的String类型转换为StringBuffer类型
44 //StringBuffer buffer = new StringBuffer(s);
45 
46 //进行StringBuffer的反转功能:
47 //public StringBuffer reverse()
48 //return buffer.reverse().toString();
49 
50 //简洁版
51 return new StringBuffer(s).reverse().toString();
52 }
53 
54 }
复制代码

 

3、
  判断一个字符串是否是对称字符串
    分析:
      两种方法可以完成:
      A:用string来完成:
        先把字符串改成数组,再对里面的数据进行, 一个一个地对比,最后的和第一个,倒二和第二....
      B:用StringBuffer来完成:
        直接倒转来对比原值
      C:分别创建方法,两个必须确认的值:
                a:返回类型:boolean
                b:参数列表:String 

复制代码
 1 import java.util.Scanner;
 2 public class StringBufferTest4 {
 3 
 4 public static void main(String[] args) {
 5 //创建键盘输入
 6 Scanner sc = new Scanner(System.in);
 7 System.out.println("请输入你想要判断的字符串:");
 8 String str = sc.nextLine();
 9 
10 //调用第一种方法
11 boolean b1 = symmetry1(str);
12 System.out.println("这个字符串是否对称:"+b1);
13 
14 //调用第一种方法2
15 boolean b2 = symmetry2(str);
16 System.out.println("这个字符串是否对称:"+b2);
17 
18 //调用第二种方法
19 boolean b3 = symmetry2(str);
20 System.out.println("这个字符串是否对称:"+b3);
21 } 
22 
23 //方式1:用string的方法来一个一个对比
24 public static boolean symmetry1(String s){
25 //把字符串改成数组
26 char[] c = s.toCharArray();
27 //进行比较,定义2个变量:start和end,分别从两端开始对比
28 for(int start = 0, end = c.length-1;start < end ; start ++,end--){
29 if(c[start] != c[end]){//进行判断
30 return false;
31 
32 }    
33 }
34 return true;
35 }
36 
37 //方式1的另外一种方式:
38 public static boolean symmetry2(String s){
39 //定义一个boolean值
40 boolean flog = true;
41 
42 //把字符串改成数组
43 char[] c = s.toCharArray();
44 
45 //进行比较,定义2个变量:start和end,分别从两端开始对比
46 for(int start = 0, end = c.length-1;start < end ; start ++,end--){
47 if(c[start] != c[end]){//进行判断
48 flog = false;
49 break;
50 }    
51 }
52 return flog;
53 }
54 
55 //方式2 利用StringBuffer的反转功能
56 public static boolean symmetry3(String s){
57 return new StringBuffer(s).reverse().toString().equals(s);
58 //先从String变为StringBuffer类型,再对它进行反转,再变回string类型,再让此时得到的字符串与原来的对比里面的数据是否一样
59 }
60 }
复制代码

转载于:https://www.cnblogs.com/h-c-g/p/11081425.html


http://www.niftyadmin.cn/n/1818987.html

相关文章

模糊查询于聚合函数

通配符&#xff1a; _ 单个字符  %任意字符  []范围内的字符  [^]范围外的字符 SELECT * FROM StudentUPDATE Student SET StudentName王波 WHERE StudentNoY21003011--模糊查询&#xff1a;查询学生表中姓’冯‘的学生记录SELECT * FROM Student WHERE StudentName L…

html导出excel

function base64 (content) {return window.btoa(unescape(encodeURIComponent(content)))}function exportTab () { // 导出let tath thislet table document.getElementById(tableID) //tableID为dom层 table IDlet excelContent table.innerHTMLlet excelFile "&…

云评论

http://changyan.kuaizhan.com/static/help/index.html 转载于:https://www.cnblogs.com/guochen/p/11081671.html

十分钟构建双十一交互分析大盘

2019独角兽企业重金招聘Python工程师标准>>> 提到双十一很多人第一印象是一张成交金额跳动的炫酷大屏&#xff0c;的确大盘在阿里双十一中几乎是每个团队标配&#xff0c;例如&#xff1a; CEO看业务&#xff1a;把重要数据放到一张大屏上&#xff0c;简洁而有冲击力…

移动端开发-Day1

什么是Node&#xff1f; 它是一个基于Chrome v8引擎的js运行环境&#xff0c;采用高效轻量级的事件驱动&#xff0c;非阻塞式的I/O模型。 非阻塞I/O&#xff1f; 例如&#xff0c;当程序运行到某一函数时&#xff0c;调用后立即返回&#xff0c;不需要等待函数执行完成&#xf…

建议是在公司发不出工资前换好工作

在移动互联网兴起的这几年&#xff0c;无论是从网上还是身边都看到了很多程序员被无良公司拖欠工资&#xff0c;可能是公司倒闭&#xff0c;也可能是老板跑路。我个人感觉程序员是一个相对单纯的群体&#xff08;很好骗&#xff09;&#xff0c;尤其是刚工作的年轻人。油腻的创…

何谓Kubernetes以及企业如何从DevOps趋势中获益

什么是容器&#xff0c;Kubernetes适合应用于什么地方&#xff0c;成功部署需要什么工具?当前&#xff0c;容器的使用可谓如火如荼。不仅受到开发人员的喜爱&#xff0c;而且也倍受企业追捧。如果贵公司的IT部门正在寻找一种更快速、更简单的应用开发方式时&#xff0c;那您应…

生命周期图示

转载于:https://www.cnblogs.com/huge-666/p/10140826.html