黑马程序员技术交流社区

标题: java键盘输入数组字符串结束 [打印本页]

作者: 陈红建    时间: 2012-8-8 15:15
标题: java键盘输入数组字符串结束
本帖最后由 陈红建 于 2012-8-8 15:19 编辑

搞什么飞机 代码 功能怎么用不了?
import java.io.*;
import java.util.*;
import java.math.*;
class Tosort {
    private int a[]=new int[10];
    private int d,i;
    private Scanner scn;
    private String end[]=new String[10];
   
    int[] toValue() throws  IOException{
        try{
            System.out.println("请输入数字,按回车键换行,结束时换行请输入over");
        scn=new Scanner(System.in);
        while(scn.hasNext())
        {  
        if(i<10)
            {
         
         a=scn.nextInt();
         i++;
            }
            else{
                System.out.println("已经到最大值,不能在输入,此次输入无效");
            
            break;   
            }
      
            
        
    }
         }
        catch(Exception e)
        {
            System.out.println("输入的非数字都被视为无效");
            toValue();
        }
        
        return a;
    }
  void use()throws IOException{
      toValue();
      for(int i=0;i<10;i++){
          if(scn.hasNextInt()!=false){
              if(i!=9)
              {
              System.out.print(a+",");
              }
              else{
              System.out.print(a+","+"\r\n");
              }
          }
          else{
              toValue();
          }
      
      }
      Arrays.sort(a);
      for(int i=0;i<10;i++){
          System.out.print(a+",");
      }
      
  }
   
   
public static void main(String args[])throws IOException{
    Tosort ts=new Tosort();
    ts.use();
   
}
}
/*
  我想实现一个键盘输入数字进入数组,并且排序,最后用户输入over结束。不管用户输入了几个数字(不一定是10个),只要输入over就结束输入,并且排序,请问这个结束怎么写?谢谢
  *
  */

作者: 徐小骥    时间: 2012-8-8 17:20
import java.util.Scanner;


public class shuzu {
        private static String[] sz=null;//int型数组
        private static int[] intsz=null;//String型数组
        private static String st="";//一个字符串
public static void main(String[] args){
        Scanner sc=new Scanner(System.in);//接受键盘输入
        String num;//存放键入值
        while((num=sc.nextLine())!=null){       
                if(num.equals("over")){//输入over,退出方法
                        break;
                }else{
                        st=st+num+",";//字符串拼接
                        System.out.print(st);
                }
                       
        }
        sz = st.split(",");//将字符串分割放入String数组

        intsz=new int[sz.length];//获取string数组的长度,并初始化int数组的长度
        for(int i=0;i<sz.length;i++){
                intsz[i]=Integer.parseInt(sz[i]);//String数组内的元素转换,并赋值给int
                }

           int temp=intsz[0];//冒泡排序
        for(int i=0;i<intsz.length-1;i++){
                for(int j=0;j<intsz.length-i-1;j++){
                        if(intsz[j]>intsz[j+1]){
                        temp=intsz[j];
                        intsz[j]=intsz[j+1];
                        intsz[j+1]=temp;
                        }
                        }
       }
        for(int i=0;i<intsz.length;i++){//排序后输出
                System.out.print(intsz[i]+"  ");
                }
}
}
我写的代码,思想是通过字符串的拼接再分割来实现你要的功能
作者: 徐小骥    时间: 2012-8-8 19:31
徐小骥 发表于 2012-8-8 17:20
import java.util.Scanner;

{:3_64:}技术分+1 爽歪歪




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2