Java 字符串处理

刚学的,注释写的很全就不作解释了,也可能有注释不全的 欢迎各路大神与我讨论交流。楼主小白菜一颗,,,,

package Class.String;

import java.util.Scanner;
/**
 * 字符串测试
 * @author Administrator
 *
 */
public class StringTest {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        //定义两个默认字符串
        String entry = "aBcDa";
        String entry1 = "         1,2,3,4,1";

        System.out.println("* * * * * * * * * * * * * * * * * * *");
        System.out.println("第一个字符串默认为:"+entry+"\n第二个字符串默认为:"+entry1);
        System.out.println("* * * * * * * * * * * * * * * * * * *");

        int seat =  entry.indexOf("c");    //找到c的位置,没有seat值就为负一

        System.out.println("\n"+entry+"从0开始数 “c”在第 "+seat+" 位\n");    

        System.out.println(entry+"共有 "+entry.length()+" 个字符");    //length()获得字符串长度

        String x = entry.toLowerCase();    //toLowerCase()转换为小写
        String d = entry.toUpperCase();    //toUpperCase()转换为大写

        System.out.println("\n小写:"+x+"\n大写:"+d);        

        String a1 = "abcda";    //输入的d 与a1 忽略大小写比较

        boolean a = entry.equalsIgnoreCase(a1);    //如果忽略大小写相等a则为true    equalsIgnoreCase()忽略大小写

        if (a) System.out.println("\n密码为"+entry+" 忽略大小写");        

        String add = entry+entry1;                //方法1
        String add1 = entry1.concat(entry);    //方法2

        System.out.println("\n两字符串连接:方法1 "+add+"  方法2 "+add1);

        int appear = entry1.indexOf("1");            //找 12341 中第一个1的位置
        int appear1 = entry1.lastIndexOf("1");        //找 12341 中最后一个1的位置

        int appear2 = entry.indexOf(97);                //b的位置,b的ASCII码为98
        int appear3 = entry.lastIndexOf(97);        //b的位置,b的ASCII码为98

        System.out.println("\n从0开始数  "+entry1+" 中第一个1的位置:"+appear+"\t中最后一个1的位置"+appear1);
        System.out.println("\n从0开始数  "+entry+" 中第一个 a 的位置:"+appear2+"\t中最后一个 a 的位置"+appear3);

        String extract = entry.substring(2);            //abcda从第二位开始截取
        String extract1 = entry.substring(1, 4);    //abcda从第二位开始截取

        System.out.println("\n"+entry+"从0开始数 第二位(包含)开始截取后面全部内容,截取获得:"+extract);
        System.out.println("\n"+entry+"指定范围截取,从0开始数 第一位开始(包含)到第四位(不包含)之间内容:"+extract1);

        String out = entry1.trim();            //去掉空格
        System.out.println("\n去空格操作"+entry1+" 去掉空格后输出 :"+out);

        String split[] = out.split(",");    //以 “,” 为拆分标志,将拆分内容存到split数组里
        System.out.println("\n以“,”为拆分标志,拆分后");

        int j = 0;

        for (int i=0; i<split.length; i++) {
            System.out.println("\n第"+(i+1)+"个:"+split[i]);
            j++;
        }
        System.out.println("\n共拆为"+j+"个字符用字符串数组存");
        //StringBuffer类测试

        StringBuffer sb = new StringBuffer("\n你好"); //创建,初始值为 你好

        int num=112;

        StringBuffer sb1 = sb.append(" 我很好 ");      //第一次添加
        System.out.println(sb1);

            StringBuffer sb2 = sb1.append("呀");               //第二次添加,单个字符可为 String 型 也可为char型
        System.out.println(sb2);

        StringBuffer sb3 = sb2.append(num);            //第三次添加
        System.out.println(sb3);

        String b = "helloword.java";    //创建字符串

        System.out.println("\n* * * * * * * * * * * * * * * * *");
        System.out.println("一个默认字符串:"+b);
        System.out.println("* * * * * * * * * * * * * * * * *");

        System.out.println("\n替换前:"+b);

        b = b.replace("ll", "EE");        //替换方法,将 "ll"替换为 "EE"
        System.out.println("替换后:"+b);

        System.out.println("\n"+b+" 是否以 .jav 结尾:"+b.endsWith(".jav"));    //判断是否以为".jav"结尾,很明显 是以".java"结尾的 所以结果为 false

        System.out.println(b+" 是否以 h 开头:"+b.startsWith("h"));        //判断是否以"h"为开头的,这里"helloword.java"是以"h"开头的所以结果为 true

        StringBuffer g = new StringBuffer("abcde");        //新创建一个StringBuffer型字符串值为"aaaaa"

        System.out.println("\n* * * * * * * * * * * * *");
        System.out.println("一个默认字符串:"+g);
        System.out.println("* * * * * * * * * * * * *");

        g.setCharAt(1, ‘B‘);        //指定替换
        System.out.println("\n从0开始数将第2个字符替换为 B:"+g);

        g.deleteCharAt(1);        //指定删除
        System.out.println("\n从0开始数将第2个字符删除:"+g);

    }

}

时间: 2024-12-22 09:42:51

Java 字符串处理的相关文章

Java字符串学习笔记

通过看jdk源码发现Java字符串中有如下关系: 接口中的方法默认都是抽象的可以写也可以不写. public interface CharSequence { int length(); char charAt(int index); CharSequence subSequence(int start, int end); public String toString(); } 其他的都是该接口的实现类且是最终类,不能被继承. public final class String impleme

Java字符串

Java字符串 String对象是不可变的.String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的对象,以包含修改后的字符串.而最初的String对象则丝毫未动. import java.util.*; public class Immutable{ public static String upcase(String s){ return s.toUpperCase(); } public static void main(String[] args){ Strin

Java字符串转16 进制工具类Hex.java

原文:Java字符串转16 进制工具类Hex.java 源代码下载地址:http://www.zuidaima.com/share/1550463378410496.htm Java 字符串转 16 进制工具类 Hex.java 实现 16进制 0xfecd .. 和 java 字符串之间的互转换! 如果做开发,通常用户登陆密码都会 mad5(salt + pwd) 然后再将 md 之后的数据 hex 一下. 这个工具类,就是实现此效果的. /* * */ package com.zuidaim

图解Java字符串不变性

1. 声明字符串 String s = "abcd"; 这里,s存储了“abcd”在这个字符串对象的引用,如下图所示: 2. 将字符串变量s赋值给字符串变量s2 String s2 = s; 此时,s2也指向了“abcd”. 3. 字符串合并 s = s.concat("ef); 这里,明显是新创建了字符串对象“abcdef”,也就是说,在java中字符串对象一旦被创建就不会改变. 总结 在Java中,一旦一个字符串对象在内存中(通常在堆中)被创建,它就不会被改变.同时字符串

Java字符串常见实例与函数

字符串比较 字符串函数 compareTo (string) ,compareToIgnoreCase(String) 及 compareTo(object string) 来比较两个字符串,并返回字符串中第一个字母ASCII的差值. public class StringCompareEmp{ public static void main(String args[]){ String str = "Hello World"; String anotherString = "

Java字符串的10大热点问题,你都懂吗?

转自 威哥干JAVA http://www.codingke.com 下面我为大家总结了10条Java开发者经常会提的关于Java字符串的问题,如果你也是Java初学者,仔细看看吧: 1.如何比较字符串,应该用”==”还是equals()? 总的来说,”==”是用来比较字符串的引用地址,而equals()才是比较字符串的值.两个值相同的字符串用”==”比较结果有可能是false,而用equals()则一定为true.除非两个字符串是同一个new出来的对象,不然比较字符串值是否相同应该要用equa

JAVA字符串格式化-String.format()的使用(转)

常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串. format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参

关于Java字符串的几个重点

String.StringBuilder和StringBuffer哪个更优? String和StringBuilder:StringBuilder是可变的,也就是说用StringBuilder创建的字符串你可以随时改变它.StringBuilder和StringBuffer:StringBuffer是同步的,它是线程安全(thread-safe)的,但效率要比StringBuilder差得多. 如何重复输出字符串? 在Python中,我们只需要为字符串乘上一个数字就可以重复输出该字符串了.然而在

深入Java字符串

深入Java字符串 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 一.从根本上认识java.lang.String类和String池 首先,我建议先看看String类的源码实现,这是从本质上认识String类的根本出发点.从中可以看到: 1.String类是final的,不可被继承.public final class String. 2.String类是的本质是字符数组char[], 并且其值不可改变.pr

java 字符串内存分配的分析与总结

经常在网上各大版块都能看到对于java字符串运行时内存分配的探讨,形如:String a = "123",String b = new String("123"),这两种形式的字符串是存放在什么地方的呢,其实这两种形式的字符串字面值"123"本身在运行时既不是存放在栈上,也不是存放在堆上,他们是存放在方法区中的某个常量区,并且对于相同的字符串字面值在内存中只保留一份.下面我们将以实例来分析. 1.==运算符作用在两个字符串引用比较的两个案例: p