关于String截取的一个问题 String = " ;;;;;;asdfasdf;;sdfs;;;fasdfa;;;;;"怎样把前面和后面的分号去掉并且把中间的多个分号变成一个分号?分号的数目不定。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String str = " ;;;;;;asdfasdf;;sdfs;;;fasdfa;;;;;"; String[] sp = str.split(";"); str = ""; for(int i = 0; i < sp.length; i++){ if(!sp[i].equals("")){ str += "?" + sp[i]; } System.out.println("" + sp[i]); } System.out.println("" + str); 归纳成工具方法: public static String convertStr(String str, String splitStr, String split2){ String[] sp = str.split(splitStr); str = ""; for(int i = 0; i < sp.length; i++){ if(!sp[i].equals("")){ str += split2 + sp[i]; } } return str; } public static void main(String[] args){ String str = " ;;;;;;asdfasdf;;sdfs;;;fasdfa;;;;;"; System.out.println(convertStr(str, ";", "?")); } 恩,再用StringBuffer来做就更好了。 TO: rower203(华仔) 你测试过吗? String str = " ;;;;;;asdfasdf;;sdfs;;;fasdfa;;;;;"; str = str.replaceAll(";+", "\\?"); System.out.println(str); 再把前后的"?"去掉就可以了 跑过多次。结果:? ?asdfasdf?sdfs?fasdfa 楼主想要的应该是:"asdfasdf?sdfs?fasdfa" 吧 是把中间的多个分号替换成一个问号还是替换成一个分号呢?我现在是替换成一个分号:public class StringTest{ public static void main(String[] args) { String str = " ;;;;;;asdfasdf;;sdfs;;;fasdfa;;;;;"; str = str.trim(); str = Trim(str, ';'); char lastChar = '\0'; char ch; String strs = ""; for(int i = 0; i < str.length(); i++) { ch = str.charAt(i); if(ch != ';' || ch != lastChar) { strs += ch; } lastChar = ch; } System.out.println(strs); } public static String TrimStart(String str, char ch) { int index = 0; int len = str.length(); char c; for(int i = 0; i < len; i++) { c = str.charAt(i); if(c != ch) { break; } index++; } if(index != 0) { return str.substring(index, len - 1); } return str; } public static String TrimEnd(String str, char ch) { int len = str.length(); int index = len - 1; char c; for(; index >= 0; index--) { c = str.charAt(index); if(c != ch) { break; } } if(index != len - 1) { return str.substring(0, index + 1); } return str; } public static String Trim(String str, char ch) { str = TrimStart(str, ch); return TrimEnd(str, ch); }} String old = " ;;;;;;asdfasdf;;sdfs;;;fasdfa;;;;;"怎样把前面和后面的分号去掉并且把中间的多个分号变成一个分号?分号的数目不定。------------------------------String s = " ;;;;;;asdfasdf;;sdfs;;;fasdfa;;;;;"; s = s.replaceAll("^\\s*;+","").replaceAll(";+", "?"); System.out.println(s); java可以检查硬盘大小吗? 关于虚拟机内存的问题 小弟初学JAVA,希望大侠们帮忙看下JAVA编辑器的下载和安装. 关于选项卡容器的问题,请教高手 关于dispose() 哪位仁兄会用JSP+MYSQL制作流水号 关于java调试的问题(用jdk4.0 和 JCreator Pro V2.00) 流管道和过滤的使用问题 用什么函数来处理精度的问题? 问题2:插入一条记录,要它及时显示在JList中,我这样写为何不行,请大虾写处正确的 基础问题:字符串的截取 一个关于函数的形参传递的问题
String[] sp = str.split(";");
str = "";
for(int i = 0; i < sp.length; i++){
if(!sp[i].equals("")){
str += "?" + sp[i];
}
System.out.println("" + sp[i]);
}
System.out.println("" + str);
public static String convertStr(String str, String splitStr, String split2){
String[] sp = str.split(splitStr);
str = "";
for(int i = 0; i < sp.length; i++){
if(!sp[i].equals("")){
str += split2 + sp[i];
}
}
return str;
}
public static void main(String[] args){
String str = " ;;;;;;asdfasdf;;sdfs;;;fasdfa;;;;;";
System.out.println(convertStr(str, ";", "?"));
}
str = str.replaceAll(";+", "\\?");
System.out.println(str); 再把前后的"?"去掉就可以了
我现在是替换成一个分号:
public class StringTest
{
public static void main(String[] args)
{
String str = " ;;;;;;asdfasdf;;sdfs;;;fasdfa;;;;;";
str = str.trim();
str = Trim(str, ';'); char lastChar = '\0';
char ch;
String strs = "";
for(int i = 0; i < str.length(); i++)
{
ch = str.charAt(i);
if(ch != ';' || ch != lastChar)
{
strs += ch;
}
lastChar = ch;
}
System.out.println(strs);
} public static String TrimStart(String str, char ch)
{
int index = 0;
int len = str.length();
char c;
for(int i = 0; i < len; i++)
{
c = str.charAt(i);
if(c != ch)
{
break;
}
index++;
}
if(index != 0)
{
return str.substring(index, len - 1);
}
return str;
} public static String TrimEnd(String str, char ch)
{
int len = str.length();
int index = len - 1;
char c;
for(; index >= 0; index--)
{
c = str.charAt(index);
if(c != ch)
{
break;
}
}
if(index != len - 1)
{
return str.substring(0, index + 1);
}
return str;
} public static String Trim(String str, char ch)
{
str = TrimStart(str, ch);
return TrimEnd(str, ch);
}
}
怎样把前面和后面的分号去掉并且把中间的多个分号变成一个分号?分号的数目不定。------------------------------
String s = " ;;;;;;asdfasdf;;sdfs;;;fasdfa;;;;;";
s = s.replaceAll("^\\s*;+","").replaceAll(";+", "?"); System.out.println(s);