import java.io.UnsupportedEncodingException;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by Administrator on 2017/5/16.
*/
public class JavaStringExam {
public static void main(String[] args) {
//String 常用方法
//1、创建String对象
String a = new String(); //""
String b = "";
String c =new String("");
//2. 字符串编码转换, 编码转换不可逆,
String s = "离开家练练";
try {
//gbk简体 gb2312简体繁体更丰富
String encodedS = new String(s.getBytes(),"gb2312");
System.out.println(encodedS);
} catch (UnsupportedEncodingException e) {
}
//3. 字符串和char[]
String cha = "123456"; //字符串就是char[]
char[] charArr = cha.toCharArray(); //字符串直接转char数组
String charToString = new String(charArr); //char数组转字符串
System.out.println(charToString);
//4. 字符串常用方法
String str = "1".concat(".").concat("1"); //concat 拼接字符串 和 + 相同用法
String str1 = "1"+"."+"1";
//replace 原char换新char
String str2 = "1 101/a/".replace("/","(");// ?0次1次 + 1次或多次 *N次 {1}匹配固定次数
String str3 = "1 101.a.".replaceFirst("\\.",""); //正则表达式替换 \任意字符, 匹配一个任意字符
String str4 = "1 101\\a\\".replaceAll("\\\\",""); // 正则表达式中" \\" 代表一个"\"
char strCharAt = "456".charAt(0);
System.out.println(strCharAt);
// 1 左比右大
// 0 相等
// -1 左比右小 97 98 compareTo每一位字符转ascII码,每一位都比较完结果就是compareTo的结果
int compareResult = "a".compareTo("b"); //String实现了Compareable接口, String的compareTo按照ascII码比较
System.out.println(compareResult);
//内容处理
boolean isStartA = "a123".startsWith("a1"); //什么字符开始
boolean isUrl = "baidu.com".endsWith(".com");
String url = "http://www.baidu.com";
boolean hasWWW = url.contains("www"); //判断字符串中是否包含www
//网址判断
if(url.contains("www")&&url.startsWith("http:")&&(url.endsWith(".com")||url.endsWith(".cn")||url.endsWith(".net"))){
}
//用户登录。 "ABC123"
if("ABC123".equalsIgnoreCase("abc123")){
//忽略大小写比较字符串内容
System.out.println("字符串相等");
}
String abc = "ABC123".toLowerCase(); //字符串转小写
String upABC= "abc123".toUpperCase();//字符串转大写
//indexOf字符串查找
//没找到结果 -1
if("acda".indexOf("a")>-1){
//判断字符在字符串中的位置,从左向右找,找第一次出现位置
System.out.println("acda".indexOf("a"));
}
if("acda".lastIndexOf("a")>-1){ //从右向左找。找到一个目标就不继续查找
System.out.println("acda".lastIndexOf("a"));
}
//isEmpty length()>0判断字符串非空
if(!"123123".isEmpty()){
System.out.println("非空");
}
if("123".length()>0){
System.out.println("非空");
}
//字符串的裁剪拼接
//substring 重载方法1 传截取开始位置
String aa = "在计算机中,所有的数据在存储和运算时都要使用二进制数表示";
String subResult = aa.substring(aa.indexOf(",")+1);
//所有的数据在存储和运算时都要使用二进制数表示
System.out.println(subResult);
//substring 两个参数时, 截取结果。 前面要,后面不要, 第一个参数位置返回,第二个参数位置不会返回
String subResult1 = aa.substring(0,aa.indexOf(","));
System.out.println(subResult1);
//字符串的拆分
String lstr = "1|2|3|4|5";//按| 拆分 每看到一个| 就把|前面字符放数组中
String[] strs = lstr.split("\\|"); // | 在正则表达式中表示 或
System.out.println(Arrays.toString(strs));
//字符串格式化, 数据库读取的字符串,可能有很多空格
String trimed = " sfd sdf ".trim(); //格式化字符串,去掉字符串左右空格
System.out.println(trimed);
//正则表达式处理
//正则表达式验证
String userNameRegex = "[A-Za-z0-9_\\-\\u4e00-\\u9fa5]{6,16}";
String userName = "水电费123";
boolean isMatch = Pattern.matches(userNameRegex,userName); //判断userName是否被 正则匹配
if(isMatch){
System.out.println("用户名符合要求");
}
//正则表达式截取
String web = "<dl>\n" +
"\t\t<dt>小托马斯地表最强</dt>\n" +
"\t\t<dd>http://n.sinaimg.cn/sports/2_img/upload/cf0d0fdd/20170516/d26_-fyfeutq0578202.jpg</dd>\n" +
" \t\t<dd>http://www.sinaimg.cn/dy/slidenews/2_t160/</dd>\n" +
"\t\t<dd>http://www.sinaimg.cn/dy/slidenews/2_t50/</dd>\n" +
"\t\t<dd>2017年05月16日 11:02</dd>\n" +
"\t\t<dd>北京时间5月16日,奇才与凯尔特人的系列赛进入抢七,结果凯尔特人115比105力克奇才,从而以总比分4比3淘汰凯尔特人晋级东部决赛;小托马斯29分12助攻,凯利-奥利尼克26分,约翰-沃尔18分11助攻,布拉德利-比尔38分。</dd>\n" +
"\t\t<dd><a href=\"http://comment5.news.sina.com.cn/comment/skin/default.html?channel=ty&newsid=slidenews-786-2144983\">评论</a></dd>\n" +
" \t\t<dd>2144983</dd>\n" +
"\t</dl>";
String regex ="<dl>\\s*<dt>[\\W\\w]*</dt>\\s*<dd>([\\W\\w]*)</dd>\\s*</dl>";
if(Pattern.matches(regex,web)) {
//正确匹配的处理
//创建Matcher对象 Matcher匹配器 Pattern正则表达式对象
Matcher matcher = Pattern.compile(regex).matcher(web);
if (matcher.find()) { //能找到 正则表达式中 ()匹配的结果 ()一个分组
String webContent = matcher.group(1);
System.out.println(webContent);
}
}
}
}
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by Administrator on 2017/5/16.
*/
public class JavaStringExam {
public static void main(String[] args) {
//String 常用方法
//1、创建String对象
String a = new String(); //""
String b = "";
String c =new String("");
//2. 字符串编码转换, 编码转换不可逆,
String s = "离开家练练";
try {
//gbk简体 gb2312简体繁体更丰富
String encodedS = new String(s.getBytes(),"gb2312");
System.out.println(encodedS);
} catch (UnsupportedEncodingException e) {
}
//3. 字符串和char[]
String cha = "123456"; //字符串就是char[]
char[] charArr = cha.toCharArray(); //字符串直接转char数组
String charToString = new String(charArr); //char数组转字符串
System.out.println(charToString);
//4. 字符串常用方法
String str = "1".concat(".").concat("1"); //concat 拼接字符串 和 + 相同用法
String str1 = "1"+"."+"1";
//replace 原char换新char
String str2 = "1 101/a/".replace("/","(");// ?0次1次 + 1次或多次 *N次 {1}匹配固定次数
String str3 = "1 101.a.".replaceFirst("\\.",""); //正则表达式替换 \任意字符, 匹配一个任意字符
String str4 = "1 101\\a\\".replaceAll("\\\\",""); // 正则表达式中" \\" 代表一个"\"
char strCharAt = "456".charAt(0);
System.out.println(strCharAt);
// 1 左比右大
// 0 相等
// -1 左比右小 97 98 compareTo每一位字符转ascII码,每一位都比较完结果就是compareTo的结果
int compareResult = "a".compareTo("b"); //String实现了Compareable接口, String的compareTo按照ascII码比较
System.out.println(compareResult);
//内容处理
boolean isStartA = "a123".startsWith("a1"); //什么字符开始
boolean isUrl = "baidu.com".endsWith(".com");
String url = "http://www.baidu.com";
boolean hasWWW = url.contains("www"); //判断字符串中是否包含www
//网址判断
if(url.contains("www")&&url.startsWith("http:")&&(url.endsWith(".com")||url.endsWith(".cn")||url.endsWith(".net"))){
}
//用户登录。 "ABC123"
if("ABC123".equalsIgnoreCase("abc123")){
//忽略大小写比较字符串内容
System.out.println("字符串相等");
}
String abc = "ABC123".toLowerCase(); //字符串转小写
String upABC= "abc123".toUpperCase();//字符串转大写
//indexOf字符串查找
//没找到结果 -1
if("acda".indexOf("a")>-1){
//判断字符在字符串中的位置,从左向右找,找第一次出现位置
System.out.println("acda".indexOf("a"));
}
if("acda".lastIndexOf("a")>-1){ //从右向左找。找到一个目标就不继续查找
System.out.println("acda".lastIndexOf("a"));
}
//isEmpty length()>0判断字符串非空
if(!"123123".isEmpty()){
System.out.println("非空");
}
if("123".length()>0){
System.out.println("非空");
}
//字符串的裁剪拼接
//substring 重载方法1 传截取开始位置
String aa = "在计算机中,所有的数据在存储和运算时都要使用二进制数表示";
String subResult = aa.substring(aa.indexOf(",")+1);
//所有的数据在存储和运算时都要使用二进制数表示
System.out.println(subResult);
//substring 两个参数时, 截取结果。 前面要,后面不要, 第一个参数位置返回,第二个参数位置不会返回
String subResult1 = aa.substring(0,aa.indexOf(","));
System.out.println(subResult1);
//字符串的拆分
String lstr = "1|2|3|4|5";//按| 拆分 每看到一个| 就把|前面字符放数组中
String[] strs = lstr.split("\\|"); // | 在正则表达式中表示 或
System.out.println(Arrays.toString(strs));
//字符串格式化, 数据库读取的字符串,可能有很多空格
String trimed = " sfd sdf ".trim(); //格式化字符串,去掉字符串左右空格
System.out.println(trimed);
//正则表达式处理
//正则表达式验证
String userNameRegex = "[A-Za-z0-9_\\-\\u4e00-\\u9fa5]{6,16}";
String userName = "水电费123";
boolean isMatch = Pattern.matches(userNameRegex,userName); //判断userName是否被 正则匹配
if(isMatch){
System.out.println("用户名符合要求");
}
//正则表达式截取
String web = "<dl>\n" +
"\t\t<dt>小托马斯地表最强</dt>\n" +
"\t\t<dd>http://n.sinaimg.cn/sports/2_img/upload/cf0d0fdd/20170516/d26_-fyfeutq0578202.jpg</dd>\n" +
" \t\t<dd>http://www.sinaimg.cn/dy/slidenews/2_t160/</dd>\n" +
"\t\t<dd>http://www.sinaimg.cn/dy/slidenews/2_t50/</dd>\n" +
"\t\t<dd>2017年05月16日 11:02</dd>\n" +
"\t\t<dd>北京时间5月16日,奇才与凯尔特人的系列赛进入抢七,结果凯尔特人115比105力克奇才,从而以总比分4比3淘汰凯尔特人晋级东部决赛;小托马斯29分12助攻,凯利-奥利尼克26分,约翰-沃尔18分11助攻,布拉德利-比尔38分。</dd>\n" +
"\t\t<dd><a href=\"http://comment5.news.sina.com.cn/comment/skin/default.html?channel=ty&newsid=slidenews-786-2144983\">评论</a></dd>\n" +
" \t\t<dd>2144983</dd>\n" +
"\t</dl>";
String regex ="<dl>\\s*<dt>[\\W\\w]*</dt>\\s*<dd>([\\W\\w]*)</dd>\\s*</dl>";
if(Pattern.matches(regex,web)) {
//正确匹配的处理
//创建Matcher对象 Matcher匹配器 Pattern正则表达式对象
Matcher matcher = Pattern.compile(regex).matcher(web);
if (matcher.find()) { //能找到 正则表达式中 ()匹配的结果 ()一个分组
String webContent = matcher.group(1);
System.out.println(webContent);
}
}
}
}