黑马程序员 JAVA 五一论坛练习 —— 1-2 (2技术分)

------- android培训java培训、期待与您交流! ----------
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。  
思路:本来想用if else写的论坛上有人直接用这方法写了还没设权限 为了避免抄袭拿不到技术分另辟蹊径让我想到了正则
就是 正则的其他字符有点坑连空格都算进去了 只好拿空格减一减了
 
package  ;
import  java. util. Scanner;
import  java. util. regex. Matcher;
import  java. util. regex. Pattern;
public  class  LX1 {
     /**
     *  @param  args
     */
     public  static  void  main( String[]  args) {
         // TODO Auto-generated method stub
String  s  =  null ;
String  en = "[a-zA-Z]", num = "\\d", space = "\\s", other = "\\W"; //   
Scanner  reader = new  Scanner( System. in);
s = reader. nextLine();
System. out. println( ":" + match( en, s) + "");
System. out. println( ":" + match( num, s) + "");
int  sp = match( space, s);
System. out. println( ":" + sp + "");
System. out. println( ":" +( match( other, s) - sp) + ""); //
    }
public  static  int  match( String  rul, String  s) //
{ Pattern  p = Pattern. compile( rul); //
Matcher  m = p. matcher( s);
int  count = 0;
while( m. find())
    { count ++;}
return  count;
}
}
 
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 
应为QQ插代码出现重叠现象所以不用插入代码的方法
思路:1-n即用个集合存入1-n然后用循环不断的遍历集合 在循环中定义到3就去除被指到的元素的方法。
T T由于一开始检查不仔发了个错误的
package 博客;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class LX2 {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
List a=new ArrayList();
String s=null;
System.out.println("请输入N:");
Scanner reader=new Scanner(System.in);
s=reader.nextLine();
for(int i=1;i<=Integer.parseInt(s);i++)
{a.add(i);}
System.out.println(a.toString());
int index=0,count=1;//下标 和 数数
while(a.size()!=1)
{   /*if(index>=a.size()) {index=0;}
if(count==3) {a.remove(index);count=1;System.out.println(a.toString());}//当数到3的时候移去该数 并打印一次集合*/
//错误代码
if(count==3) {if(index>=a.size()) {index=0;}//在这里多加一句判断 之前当数字是6的倍数还是在结尾的时候 index没有及时清零 导致后面count多加了次1
//测试的时候只试了2次单数 T T
a.remove(index);count=1;System.out.println(a.toString());}//当数到3的时候移去该数 并打印一次集合
if(index>=a.size()) {index=0;}
++index;
    ++count;
}
System.out.println("最后留下的数为:"+a.toString());
}

}

活动地址:
http://bbs.itheima.com/forum.php?mod=viewthread&tid=116279

 ------- android培训java培训、期待与您交流! ----------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值