StringJoiner 概述

本文介绍StringJoiner类在JDK8中的应用,通过指定间隔、开始及结束符号提高字符串操作效率。StringJoiner无需空参构造,支持添加元素、获取长度与转换为字符串等多种方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

StringJoiner 和 StringBuilder 一样,也可以看成是一个容器,创建之后内容是可变的。 它是在JDK8中出现的。

作用:提高字符串的操作效率,而且代码编写特别简介。

StringJoiner 构造方法

StringJoiner sj = new StringJoiner("间隔符号");
//创建一个StringJoiner对象,指定拼接时的间隔符号
间隔符号为:“---”
1---2---3


StringJoiner sj = new StringJoiner("间隔符号","开始符号","结束符号");
//创建一个StringJoiner对象,指定拼接时的间隔符号、开始符号、结束符号
间隔符号为:“---”  开始符号:“[”  结束符号:“]”
[1---2---3]


StringJoiner没有空参构造

StringJoiner 常用方法

sj.add("");//添加元素

sj.length();//返回StringJoiner个数(包括了间隔、开始、结束的符号)

sj.toString();//把StringJoiner换成String

j.setEmptyValue("默认值");//当StringJoiner什么都没有时默认为”默认值“
System.out.println(sj.toString() + "  " + sj);//111  111

public String getCurrentApnConfig() { //Uri APN_TABLE_URI = Uri.parse("content://telephony/carriers/preferapn"); Cursor cr = getContentResolver().query(CURRENT_APN_URI, null, null, null, null); String[] mStrings = new String[cr.getCount()]; int i = 0; StringJoiner joiner = new StringJoiner(";", "",""); while (cr != null && cr.moveToNext()) { String name = cr.getString(cr.getColumnIndexOrThrow("name")); String apn = cr.getString(cr.getColumnIndexOrThrow("apn")); String numeric = cr.getString(cr.getColumnIndexOrThrow("numeric")); String mcc = cr.getString(cr.getColumnIndexOrThrow("mcc")); String mnc = cr.getString(cr.getColumnIndexOrThrow("mnc")); String user = cr.getString(cr.getColumnIndexOrThrow("user")); String password = cr.getString(cr.getColumnIndexOrThrow("password")); mStrings[i] = array2JsonString(new String[]{name, apn, numeric, mcc, mnc, user, password}); /*mStrings[i] = "ID:" + cr.getString(cr.getColumnIndexOrThrow("_id")) + "\n" + "name:" + cr.getString(cr.getColumnIndexOrThrow("name")) + "\n" + "numeric:" + cr.getString(cr.getColumnIndexOrThrow("numeric")) + "\n" + "mcc:" + cr.getString(cr.getColumnIndexOrThrow("mcc")) + "\n" + "mnc:" + cr.getString(cr.getColumnIndexOrThrow("mnc")) + "\n" + "apn:" + cr.getString(cr.getColumnIndexOrThrow("apn")) + "\n" + "user:" + cr.getString(cr.getColumnIndexOrThrow("user")) + "\n" + "server:" + cr.getString(cr.getColumnIndexOrThrow("server")) + "\n" + "password:" + cr.getString(cr.getColumnIndexOrThrow("password")) + "\n" + "proxy:" + cr.getString(cr.getColumnIndexOrThrow("proxy")) + "\n" + "port:" + cr.getString(cr.getColumnIndexOrThrow("port")) + "\n" + "mmsproxy:" + cr.getString(cr.getColumnIndexOrThrow("mmsproxy")) + "\n" + "mmsport:" + cr.getString(cr.getColumnIndexOrThrow("mmsport")) + "\n" + "mmsc:" + cr.getString(cr.getColumnIndexOrThrow("mmsc")) + "\n" + "authtype:" + cr.getString(cr.getColumnIndexOrThrow("authtype")) + "\n" + "type:" + cr.getString(cr.getColumnIndexOrThrow("type")) + "\n" + "current:" + cr.getString(cr.getColumnIndexOrThrow("current"));*/ Log.d(TAG, "abc: "+ mStrings[i]); joiner.add(mStrings[i]); i++; } return joiner.toString(); } public boolean setCurrentApnConfig(String values) { String[] split = values.split(";"); ContentValues[] mContentValues = new ContentValues[split.length]; int i = 0; for (String apnConfig : split) { String[] config = jsonString2Array(apnConfig); mContentValues[i] = getApnValue(config); i++; } getContentResolver().bulkInsert(APN_TABLE_URI, mContentValues); return true; } public ContentValues getApnValue(String[] config) { ContentValues value = new ContentValues(); value.put("name", config[0]); value.put("apn", config[1]); value.put("numeric", config[2]); value.put("mcc", config[3]); value.put("mnc", config[4]); value.put("user", config[5]); value.put("password", config[6]); value.put("current", "1"); return value; }代码分析
最新发布
03-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值