此程序处理一个由0和非0数字成员组成的数组(长度自定),
例如0 0 1 2 0 1 0 0 0 1 0 0 0 0 0 2 0 7 8 9 0 0 1 2 3 4,
把数组中所有连续两个以上的0去掉,将结果存入一个新数组。
如上例处理后结果为,1 2 0 1 1 2 0 7 8 9 1 2 3 4。
例如0 0 1 2 0 1 0 0 0 1 0 0 0 0 0 2 0 7 8 9 0 0 1 2 3 4,
把数组中所有连续两个以上的0去掉,将结果存入一个新数组。
如上例处理后结果为,1 2 0 1 1 2 0 7 8 9 1 2 3 4。
解决方案 »
- 请问这程序怎么写,需要获取网页上的一个验证码的图片,然后通过一个方法(已经在在,设为X(Image a),然后模拟在网页上的一个文本框中输入,然后获取返回值
- 纠集了几小时始综没找到错误
- 如何用Java编写一个万年历
- JXTA配置问题 送高分 请高手指导。。谢谢!!!!
- 面试题
- **********小问题(100分)(树根呢???)
- 请问:Java触发的问题(急)
- 在指定的矩形区域中显示字符信息
- .jar文件的使用(在JRun4.0中)
- 在JTree中,单击鼠标选择树的结点不能选中并出错!
- 再深入学习、了解正则表达式
- 关于JTextField的,我想做个计算按钮,就是把两个JTextfield的值相乘。
String regex = "([0]{2,})";
String str = "00120100010000020789001234";
String resultStr = str.replaceAll(regex, "");
System.out.print(resultStr);
lz是这样吗
public static void main(String[] args){
int org[] = new int[]{1,0,0};
int length = org.length;
int res[] = new int[length];
int j=0;
if(length==1){
res[j] = org[0];
}else{
for(int i=0;i<length;i++){
if(org[i]!=0){
res[j] = org[i];
j++;
}else{
if(i+1<length&&org[i+1]!=0){
res[j] = org[i];
j++;
}else if(i+1<length){
while(org[i+1]==0){
i++;
if(i+1==length) break;
}
}
}
}
if(org[length-1]==0&&org[length-2]!=0){
res[j] = org[length-1];
j++;
}
}
for(int i=0;i<res.length;i++){
System.out.print(res[i]+" ");
}
}}
第一个if语句加一句 j++;不知道这样行不行
int[] nums = {
0, 0, 1, 2, 0, 1, 0, 0, 0, 1,
0, 0, 0, 0, 0, 2, 0, 7, 8, 9,
0, 0, 1, 2, 3, 4
};
int k = 0;
for(int i = 1, n = nums[0]; i < nums.length; i++) {
if(!(nums[i] == 0 && (n == 0 || (i < nums.length - 1 ? nums[i+1] == 0 : true)))) {
if(i == 1 && (n != 0 || (n == 0 && nums[i] != 0))) {
nums[k++] = n;
}
nums[k++] = nums[i];
}
n = nums[i];
}
int[] newNums = new int[k];
System.arraycopy(nums, 0, newNums, 0, k);
System.out.println(Arrays.toString(newNums));
}
}
String str = "00120100010000020789001234";
System.out.println(str.replaceAll("[0]{2,}", ""));
public static void main(String [] args){
String [] s= {"1","2","0","0","3","0","3","4","0","0","9","0","0","2"};
String s1 = s[0];
for(int i = 1;i < s.length;i ++){
s1 = s1 + s[i];
}
String s2 = s1.replaceAll("0+", "0");
char[] ch = s2.toCharArray();
}
}
String str = "00120100010000020789001234";
str = str.replace("00","");
System.out.println(str);
public class Test2
{
public static String str1="";
public static void cut(String str,int i)
{
while(str.charAt(i)=='0')
{
i++;
}
if(i>1)
{
str=str.substring(i,str.length());
}
else
{
str1+=str.charAt(0);
if(str.length()!=1)
{
str=str.substring(1,str.length());
}
else
{
System.out.println("str1="+str1);
return ;
}
}
cut(str,0);
}
public static void main(String[] args)
{
String str="";
if(args.length==0)
{
str="00120100010000020789001234";
}
else
{
str=args[0];
}
cut(str,0);
}
}
public String replace(char oldChar,
char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。
如果 oldChar 在此 String 对象表示的字符序列中没有出现,则返回对此 String 对象的引用。否则,创建一个新的 String 对象,用来表示与此 String 对象表示的字符序列相等的字符序列,除了每个出现的 oldChar 都被一个 newChar 替换之外。 示例: "mesquite in your cellar".replace('e', 'o')
returns "mosquito in your collar"
"the war of baronets".replace('r', 'y')
returns "the way of bayonets"
"sparring with a purple porpoise".replace('p', 't')
returns "starring with a turtle tortoise"
"JonL".replace('q', 'x') returns "JonL" (no change)
参数:
oldChar - 原来的字符。
newChar - 新字符。
返回:
一个从此字符串派生的字符串,方法是在每个出现 oldChar 的地方用 newChar 替换。--------------------------------------------------------------------------------jdk上的,好好看看
System.out.println(str.replaceAll("[0]{2,}", ""));
正则好强大!!!