java中如何使一段连续的数字,跳过包含4的数?

wyj1983 2009-06-24 08:47:38
一段连续的数字,比如3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25

如何让结果变成3,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,21,22,23,25

即将带4的数字排除掉!
...全文
524 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
wibnmo 2009-06-24
  • 打赏
  • 举报
回复

import java.util.*;

public class Test {

public static void main(String[] args) {
String str = null;
List list = new ArrayList();
String[] str1 = new String[50];
Scanner sc = new Scanner(System.in);
str = sc.nextLine();
str1 = str.split(" ");
for (int i = 0; i < str1.length; i++) {
if (str1[i].indexOf("4") < 0) {
list.add(str1[i]);
}
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
mianfeidog 2009-06-24
  • 打赏
  • 举报
回复
这是一个学习的好贴。
  • 打赏
  • 举报
回复
public class Test5 {

public static void main(String[] args) {
String str = "4,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,34";
str = str.replaceAll("\\d*4\\d*,?|,?\\d*4\\d*", "");
System.out.println(str);
}
}
zm_hs 2009-06-24
  • 打赏
  • 举报
回复
我写了两种方式,那个和10取余的,也可以实现该功能!那个是针对整型,这个是字符串
wyj1983 2009-06-24
  • 打赏
  • 举报
回复
谢谢各位,问题解决了!
wyj1983 2009-06-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zm851203 的回复:]
Java code
public static void main(String[] args) {
String test = "3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 ";
String s [] = test.split(",");
for (int i = 0; i < s.length; i++) {
if (s[i].indexOf("4") == -1) {
System.out.println(s[i]);
}
}
}
[/Quote]

你的方法最好,谢谢了!
sunwei0325 2009-06-24
  • 打赏
  • 举报
回复
用循环效率上是不是有问题,String类本身不是有contains方法么
goodmrning 2009-06-24
  • 打赏
  • 举报
回复
Pattern p;
Matcher m;
String str="3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 ";
p=Pattern.compile("\\d{1,}";
m=p.matcher(str);
while(m.find()){
System.out.print(m.group()+",");
}


上面哪个错了。这个可以满足要求。
wuaijl20 2009-06-24
  • 打赏
  • 举报
回复

public static void deleteElement(int[] N,int K) {
List<Integer> list = new ArrayList<Integer>();
for(int a : N) {
String str = String.valueOf(a);
if(str.contains(String.valueOf(K)))
continue;
list.add(Integer.valueOf(str));
}
}
zhuzhusany 2009-06-24
  • 打赏
  • 举报
回复

int[] arr = {3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
int[] temp = new int[arr.length];
int j =0;
for(int i = 0; i< arr.length;i++) {
if(String.valueOf(arr[i]).indexOf("4") == -1) {
temp[j] = arr[i];
j++;
}
}
int[] result = new int[j];
for(int k = 0; k < j; k++) {
result[k] = temp[k];
System.out.print(result[k] + " ");
}
xnjnmn 2009-06-24
  • 打赏
  • 举报
回复

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex {
public static void main(String[] args) {
String s = "3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25";
List<String> list = getStrings(s);
for(String sl:list){
System.out.println(sl+"---");
}
}

public static List<String> getStrings(String s) {
List<String> list = new ArrayList<String>();
String[] start = s.split(",");
/*String regex = "[4]";
Pattern p = Pattern.compile(regex);*/
for (int i = 0; i < start.length; i++) {
//是否包含4
if(!start[i].contains("4")){
list.add(start[i]);
}
}
return list;
}
}
wibnmo 2009-06-24
  • 打赏
  • 举报
回复
除以 10 余数是4的 排除


这个不好使吧。
4开头的就不行了。
yuxinglian 2009-06-24
  • 打赏
  • 举报
回复
只要带4就删啊, 重新更正一下
String s = "3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,49,141";
s = s.replaceAll("(,\\d*4\\d*)", "");
xuyang840117 2009-06-24
  • 打赏
  • 举报
回复
String str = "3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 ";
Pattern pattern = Pattern
.compile("[0-9]*4[0-9]*,");
Matcher isNum = pattern.matcher(str);
str = isNum.replaceAll(str);
rachel_tang 2009-06-24
  • 打赏
  • 举报
回复
如果41呢 140呢 4000呢
yuxinglian 2009-06-24
  • 打赏
  • 举报
回复
String s = "3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25";
s = s.replaceAll("(,\\d*[4])", "");
wyj1983 2009-06-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bolink5 的回复:]
Java code
public class Hello {

/**
* @param args
*/
public static void main(String[] args) {
List list1= new ArrayList();
List list = new ArrayList();
for(int i = 0; i<30;i++){
list.add(i);
}
for(int i = 0;i< list.size();i++){
if(!list.get(i).toString().endsWith("4")){
list1.add(list.get(i)…
[/Quote]

你好,你这个方法从0到50的话,40,41,42,43,45。。。49不会被排除,所以结果不对!
zm_hs 2009-06-24
  • 打赏
  • 举报
回复

public static void main(String[] args) {
String test = "3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 ";
String s [] = test.split(",");
for (int i = 0; i < s.length; i++) {
if (s[i].indexOf("4") == -1) {
System.out.println(s[i]);
}
}
}

岁月之梦 2009-06-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 LLXY2008 的回复:]
除以 10  余数是4的 排除
[/Quote]
这个我赞成!
goodmrning 2009-06-24
  • 打赏
  • 举报
回复
String str="3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 ";
String str1=str.replaceAll("4","");
加载更多回复(5)

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧