字符串分割
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串分割相关的知识,希望对你有一定的参考价值。
[IP1:5],取出数字5.
C#:
字符分割:
string s = "[IP1:5]";
string[] ss =s.Split(‘:‘);
string res =ss[1].Substring(0, ss[1].Length - 1);
正则表达式:
MatchCollection Matches =Regex.Matches(s, ":.*]");
string res2 =Matches[0].Value.Substring(1, Matches[0].Value.Length - 2);
MatchCollection Matches =Regex.Matches(s, ":.*]");这步是正则匹配
匹配到的是:5],然后再做字符串截取
Java:
package regex;
import java.util.regex.*;
publicclass TestRegex {
publicstaticvoid main(String args[]) {
Strings = "[IP1:5]";
//非正则
String[]ss = s.split(":");
Stringres = ss[1].substring(0, ss[1].length() - 1);
System.out.println(res);
//正则
Patternpattern = Pattern.compile(":.*]");
Matchermatch = pattern.matcher(s);
booleanrs = match.find();
if (rs)
System.out.println(match.group().substring(1,match.group().length() -2));
}
}
BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入Case列表:");
String strCase=strin.readLine();
//System.out.println(strCase);
System.out.println("请输入服务器-任务列表:");
String strServer=strin.readLine();
//System.out.println(strServer);
String[] caseArray=strCase.split(",");
String[] serverArray=strServer.split(",");
int[] taskArray=new int[serverArray.length];
String rex1=":[0-9]*";
Pattern p=Pattern.compile(rex1);
Matcher m;
for(int i=0;i<serverArray.length;i++){
m=p.matcher(serverArray[i]);
if(m.find()){
taskArray[i]=Integer.parseInt(m.group().substring(1));
}
}
最简单的代码实现:
package ChapterTwo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class testcase {
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入Case列表:");
String strCase=strin.readLine();
// System.out.println(strCase);
System.out.println("请输入服务器-任务列表:");
String strServer=strin.readLine();
// System.out.println(strServer);
String[] caseArray=strCase.split(",");
String[] serverArray=strServer.split(",");
int[] taskArray1=new int[serverArray.length];
int[] taskArray2=new int[taskArray1.length];
String rex1=":[0-9]*";
Pattern p=Pattern.compile(rex1);
Matcher m;
String s;
for(int i=0;i<serverArray.length;i++){
m=p.matcher(serverArray[i]);
if(m.find()){
// System.out.println(m.group().length());
s=m.group();
// System.out.println(s.substring(1,s.length()));
taskArray1[i]=Integer.parseInt(s.substring(1,s.length()));
}
}
// for(int i=0;i<taskArray1.length;i++){
// System.out.println(taskArray1[i]);
// }
for(int i=0;i<taskArray1.length;i++){
taskArray2[i]=taskArray1[i];
}
int minTask=0;
int flag=0;
for(int j=1;j<=caseArray.length;j++){
minTask=taskArray1[0];
flag=0;
for(int i=1;i<taskArray1.length;i++){
if(minTask>taskArray1[i]){
minTask=taskArray1[i];
flag=i;
}else if(minTask==taskArray1[i]){
if(taskArray2[flag]>taskArray2[i]){
flag=i;
}
}
}
taskArray1[flag]=taskArray1[flag]+1;
}
String temp;
for(int i=0;i<taskArray1.length;i++){
temp=serverArray[i].replaceAll(":[0-9]*", ":"+taskArray1[i]);
serverArray[i]=temp;
}
int count,flagCase=0;
int res=0;
String[] resultArray=new String[serverArray.length+caseArray.length];
for(int i=0;i<serverArray.length;i++){
if(taskArray1[i]!=taskArray2[i]){
count=taskArray1[i]-taskArray2[i];
for(int j=0;j<count;j++){
resultArray[res]=serverArray[i].replace("[", "["+caseArray[flagCase]+":");
res=res+1;
flagCase=flagCase+1;
}
}else{
resultArray[res]=serverArray[i].replace("[", "[NA:");
res=res+1;
}
}
for(int i=0;i<resultArray.length;i++){
if(resultArray[i]==null){
break;
}
System.out.println(resultArray[i]);
}
}catch(IOException e){
e.printStackTrace();
}
}
}
本文出自 “一步,一步” 博客,请务必保留此出处http://summerflowers.blog.51cto.com/5202033/1917457
以上是关于字符串分割的主要内容,如果未能解决你的问题,请参考以下文章