注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

IOS & JAVA KEY

(iMilo)

 
 
 

日志

 
 
关于我

All the splendor in the world is not worth a good friend!! Hello my friend!!

网易考拉推荐

String类和StringBuffing类  

2011-01-22 23:54:42|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

2011-01-22

位于java.lang包中

@String类对象中的内容一旦被初始化就不能再改变。

@StringBuffing类用于封装内容可以改变的字符串

@:用toStrong方法转换成String类型

String x = “a” + 4 + “c”; 编译时效果等效于:String x = new StringBuffer().append(“a”).append(4).append(“c”).toString();

@:字符串常量(如”hello”)实际上是一种特殊的匿名String对象。比较下面两种情况的差异:

String s1 = “hello”; String s2 = “hello”;

String sA = new String(“hello’); String sB = new String(“hello”);

说明:s1s2是同一个对象,而sAsB则是两个不同的对象

String类的常用方法

@:构造方法:String(byte[] byes, int offste, int length);

@equalsIgnoreCase方法:忽略大小写

@indexOf(int ch)方法:ch在字符串中首次出现的位置

@substring(int beginIndex)方法: 返回从beginIndex位置,到字符串结束的字符串,如果beginIndex位置大于字符串本省的长度,则返回null

@substring(int beginIndex, int endIndex)方法:返回从beginIndex位置开始,到endIndex – 1 之间的字符串。

 

 

编程实例:

从控制台输入,直到输入“bye“结束

CODE:

import java.io.IOException;

 

/**

 * @author TEANA E-mail: mmz06@163.com

 * @version 创建时间:2011-1-22 下午11:05:05

 * @DO      JAVA高级 (输入内容直到bye  

 */

 

public class ReadLine

{

    public static void main(String[] args)

    {

        //保存输入的一行

        byte[] buf = new byte[1024];

        //保存每次输入的字节类容

        int ch = 0;

        //保存字节数组中的字符串

        String inStr = null;

        //保存字节数组的实际长度

        int pos = 0;

        System.out.println("Please enter info:");

        while(true)

        {

            try

            {

                ch = System.in.read();

                switch(ch)

                {

                    //'\r'表示回车

                    case '\r':

                        break;

                    //'\n'表示换行

                    case '\n':

                        inStr = new String(buf, 0, pos);

                        if("bye".equals(inStr))

                        {

                            return;

                        }

                        else

                        {

                            System.out.println(inStr);

                            pos = 0;

                            break;

                        }

                        default:

                            buf[pos ++] = (byte) ch;

                }

            }

            catch (IOException e)

            {

                e.printStackTrace();

            }

        }

    }

}

说明:底色为____部分,如果为 :”bye” == inStr 则无论输入bye多少次,程序都不会结束,这也就说明了 new String(“”)总是开辟新的内存空间,而 == 是比较的内存地址,所以 == 永远不会成立.

 
  评论这张
 
阅读(425)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017