import java.util.ArrayList; import java.util.Iterator; import java.util.Scanner;import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;import org.omg.CORBA.PUBLIC_MEMBER; public class Exploring { public static void main(String[] args) { ArrayList<Double> doublearray=new ArrayList<Double>(); ArrayList<Integer> intarray=new ArrayList<Integer>(); Scanner sc=new Scanner(System.in); int i = 0; int flag=0; do{ try { do { flag=0; i=0; System.out.println("whether you would like to enter?\n1.double values.\n2.int values."); i=sc.nextInt(); switch (i) { case 1:System.out.print("Please enter how many values you want to:"); int num=sc.nextInt(); for(int j=0;j<num;j++) { System.out.print("please enter the "+(j+1)+"number:"); doublearray.add(sc.nextDouble()); } double sum=0; for(Iterator it=doublearray.iterator();it.hasNext();) { sum=sum+((Double)it.next()).doubleValue(); } System.out.println(sum); break; case 2:System.out.print("Please enter how many values you want to:"); int num1=sc.nextInt(); for(int j=0;j<num1;j++) { System.out.println("please enter the "+(j+1)+"number:"); intarray.add(sc.nextInt()); } int sum1=0; for(Iterator it=doublearray.iterator();it.hasNext();) { sum1=sum1+((Integer)it.next()).intValue(); } break; default:System.out.println("Waring:Your enter is wrong,please enter 1 or 2!"); break; } }while(i!=1&&i!=2); } catch(Exception e) { flag=1; System.out.println("Your enter is illeagl!"); sc.nextLine(); //关键问题在这里 } }while(flag==1); } }在catch中添加了一行 sc.nextLine(); 否则你最后一次输入的非数字的一直没有处理掉,一直循环抛出异常
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;import org.omg.CORBA.PUBLIC_MEMBER;
public class Exploring
{
public static void main(String[] args)
{
ArrayList<Double> doublearray=new ArrayList<Double>();
ArrayList<Integer> intarray=new ArrayList<Integer>();
Scanner sc=new Scanner(System.in);
int i = 0;
int flag=0;
do{
try
{
do
{
flag=0;
i=0;
System.out.println("whether you would like to enter?\n1.double values.\n2.int values.");
i=sc.nextInt();
switch (i)
{
case 1:System.out.print("Please enter how many values you want to:");
int num=sc.nextInt();
for(int j=0;j<num;j++)
{
System.out.print("please enter the "+(j+1)+"number:");
doublearray.add(sc.nextDouble());
}
double sum=0;
for(Iterator it=doublearray.iterator();it.hasNext();)
{
sum=sum+((Double)it.next()).doubleValue();
}
System.out.println(sum);
break;
case 2:System.out.print("Please enter how many values you want to:");
int num1=sc.nextInt();
for(int j=0;j<num1;j++)
{
System.out.println("please enter the "+(j+1)+"number:");
intarray.add(sc.nextInt());
}
int sum1=0;
for(Iterator it=doublearray.iterator();it.hasNext();)
{
sum1=sum1+((Integer)it.next()).intValue();
}
break;
default:System.out.println("Waring:Your enter is wrong,please enter 1 or 2!");
break;
}
}while(i!=1&&i!=2);
}
catch(Exception e)
{
flag=1;
System.out.println("Your enter is illeagl!");
sc.nextLine(); //关键问题在这里
}
}while(flag==1);
}
}在catch中添加了一行 sc.nextLine(); 否则你最后一次输入的非数字的一直没有处理掉,一直循环抛出异常
对了还有,请问怎么用正则表达式判断10个纯字母字符串是从A-M开头的,还是从O-Z开头的,感觉无从下手,你能帮我举个例子吗?
对了还有,请问怎么用正则表达式判断10个纯字母字符串是从A-M开头的,还是从O-Z开头的,感觉无从下手,你能帮我举个例子吗?提高可读性
1、能够独立的部分封装成方法
2、尽量少用循环嵌套、if嵌套等
3、变量命名遵循规则
4、代码排版遵循规则
5、尽量用while替换do while(个人意见),其实你完全可以用while替换的,只需要在while循环中判断条件break就可以了正则表达式
10位A-M开头纯大写字母字符串
[A-M][A-Z]{9}10位O-Z开头纯大写字母字符串
[O-Z][A-Z]{9}代码如下: String regex1 = "[A-M][A-Z]{9}";
String regex2 = "[O-Z][A-Z]{9}";
String s1 = "BUIYOOPIKL";
String s2 = "SUIYOOPIKL";
System.out.println(s1.matches(regex1));
System.out.println(s2.matches(regex1));
System.out.println(s2.matches(regex2));
System.out.println(s1.matches(regex2));
对了还有,请问怎么用正则表达式判断10个纯字母字符串是从A-M开头的,还是从O-Z开头的,感觉无从下手,你能帮我举个例子吗?提高可读性
1、能够独立的部分封装成方法
2、尽量少用循环嵌套、if嵌套等
3、变量命名遵循规则
4、代码排版遵循规则
5、尽量用while替换do while(个人意见),其实你完全可以用while替换的,只需要在while循环中判断条件break就可以了正则表达式
10位A-M开头纯大写字母字符串
[A-M][A-Z]{9}10位O-Z开头纯大写字母字符串
[O-Z][A-Z]{9}代码如下: String regex1 = "[A-M][A-Z]{9}";
String regex2 = "[O-Z][A-Z]{9}";
String s1 = "BUIYOOPIKL";
String s2 = "SUIYOOPIKL";
System.out.println(s1.matches(regex1));
System.out.println(s2.matches(regex1));
System.out.println(s2.matches(regex2));
System.out.println(s1.matches(regex2));
非常感谢,受教了!,
以后学习过程中我会慢慢改正政协问题的