美文网首页
Java函数

Java函数

作者: 橙子潘潘 | 来源:发表于2017-03-29 20:34 被阅读0次

    replacereplaceAll是JAVA中常用的替换字符的方法,它们的区别是:

    1)replace的参数是charCharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
      2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\d", "*")把一个字符串所有的数字字符都换成星号;
      相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用 replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串。
      另外,如果replaceAll()replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
    还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的。
    举例如下:

      String src = new String("ab43a2c43d");
      System.out.println(src.replace("3","f"));=>ab4f2c4fd.
      System.out.println(src.replace('3','f'));=>ab4f2c4fd.
      System.out.println(src.replaceAll("\\d","f"));=>abffafcffd.
      System.out.println(src.replaceAll("a","f"));=>fb43fc23d.
      System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d
      System.out.println(src.replaceFirst("4","h"));=>abh32c43d.```
    如何将字符串中的"\"替换成"\\\":
    ```java
      String msgIn;
      String msgOut;
      msgOut=msgIn.replaceAll("\\\\","\\\\\\\\");```
    原因:
    '\'在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\\" ) ;只打印出一个"\"。但是'\'也是正则表达式中的转义字符(replaceAll 的参数就是正则表达式),需要用两个代表一个。所以:\\\\\\\被java转换成\\\,\\\又被正则表达式转换成 \ 。
    将字符串中的'/'替换成'\'的几种方式:
    

    msgOut= msgIn.replaceAll("/", "\\");
      msgOut= msgIn.replace("/", "\");
      msgOut= msgIn.replace('/', '\');```


    java socket中的getinputstream和getoutputstream都有什么用?

    java socket中有两个流,
    一个是输入流getinputstream,用于读取socket发送过来的数据,就是接收消息用的,
    另一个是输出流getoutputstream,用于向socket端发送数据,就是发送消息用的.


    java中flush()函数的作用是什么?

    flush()意思是把缓冲区的内容强制的写出。 因为操作系统的某些机制,为了防止一直不停地磁盘读写,所以有了延迟写入的概念,(注意不要和frush()刷新混淆了)
     主要用在IO中,即清空缓冲区数据,一般在读写流(stream)的时候,数据是先被读到了内存中,再把数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。这时候如果你调用了close()方法关闭了读写流,那么这部分数据就会丢失,所以应该在关闭读写流之前先flush()。。
     在网络web服务器上也是,为了防止写一个字节就发送一个消息,所以有缓冲区的概念,比如64K的内存区域,缓冲区写满了再一次性写入磁盘之中(或者发送给客户端浏览器)。
     flush方法一般是程序写入完成时执行。随后跟着close方法。例如:

    // 取得输出流。当然,看具体环境。
    PrintWriter out = Util.getWriter();
    out.println("输出一些信息,可能很多");
    out.flush();
    out.close();```
    *******
    ####response.getStatusCode()
    页面请求的状态值,分别有:200请求成功、303重定向、400请求错误、401未授权、403禁止访问、404文件未找到、500服务器错误。
    *******
    ####java中如何在map中实现一对多的关系?
    1、可以使用Map<Integer, List>格式来达到一对多的关系
    2、key值可以为一个整型数,作为一个类似ID主键来使用,value值可以用List集合来保存多条数据
    3、这样就达到了一个key,对应多条记录。
    

    Map<String,List> coll = new HashMap<String,List>();
    List<String> list = new ArrayList<String>();
    list.add("a");
    list.add("b");
    coll.put("1",list);
    List<String> results = (List<String>)coll.get("1");```


    Map List 简易初始化

    
    //初始化List
        List<string> list = new ArrayList<string>(){{
        add("string1");
        add("string2");
        //some other add() code......
        add("stringN");
        }};
    
        //初始化Map
        Map<string , String> map = new HashMap<string , String>(){{
        put("key1", "value1");
        put("key2", "jb51.net");
        //.... some other put() code
        put("keyN", "valueN");
        }};```
    更简单实例,利用Array与ArrayList的相互转换方法,代码如下:
    

    ArrayList<String> list = new ArrayList(Arrays.asList("Ryan", "Julie", "Bob"));```

    相关文章

      网友评论

          本文标题:Java函数

          本文链接:https://www.haomeiwen.com/subject/iryeottx.html