Java函数

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"));```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,901评论 18 399
  • 蜗子阅读 682评论 0 0
  • 阳光从阳台的门口照进来,我睁开眼睛,发现身体异常的轻盈,看到的世界有点诡异,比平常的多加了一层紫色。我有种不祥的预...
    桨一阅读 4,037评论 0 1
  • 月亮在中国的文化中占据着很重要的位置,嫦娥奔月、吴刚伐桂、天狗吞月的传说,更有传统节日中秋节的产生,也和月亮息息相...
    稻城阳光阅读 4,170评论 14 12