java 编程实现接收键盘输入任意多个整数,并以逗号分开,然后选择数组排重或随机打乱。返回排序输

作者&投稿:延毛 (若有异议请与网页底部的电邮联系)
用Java编程实现接收键盘输入任意多个整数,并以逗号分开,然后选择升序或者降序。返回排序,输出结果。~

这是求程序代码吗?用java获取参数,根据逗号分割返回数组,然后检查数据合法性后调用数组排序,最后将结果保存即可。

思路如下:1,录入字符串
2,使用正则表达式分割
3,转换为int数组
4,排序
5,拼接,代码如下:
import java.util.Arrays;import java.util.Scanner;public class Demo8 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();// 录入字符串String[] strs = str.split(",");// 使用正则表达式进行分割int[] is = new int[strs.length];for (int i = 0; i < strs.length; i++) {// 遍历String数组,赋值给int数组is[i] = Integer.parseInt(strs[i]);}Arrays.sort(is);// 使用数组工具类进行排序,也可以自己使用冒泡或选择排序来进行排序StringBuffer sb = new StringBuffer();for (int i = 0; i < is.length; i++) {// 遍历进行拼接if (i == is.length - 1) {sb.append(is[i]);} else {sb.append(is[i] + ",");}}System.out.println(sb.toString());}

// 回答完毕,采纳即可

import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Drinks
{
public static final int REMOVE = 1;

public static final int RANDOM = 2;

public static final String FILE = "asd.txt";

public static final String LINE = System.getProperty("line.separator");

private static String[] remove(String[] array)
{
String[] result = new String[0];
String tmp = ",";
for(int i = 0; i < array.length; i++)
{
String one = array[i];
if(tmp.indexOf("," + one + ",") == -1)
{
String[] cloned = new String[result.length + 1];
System.arraycopy(result, 0, cloned, 0, result.length);
cloned[cloned.length - 1] = one;
result = cloned;
tmp += one + ",";
}
}
return result;
}

private static void random(String[] array)
{
Arrays.sort(array, new Comparator<String>()
{
@Override
public int compare(String o1, String o2)
{
double rand = Math.random();
if(rand < 0.5)
{
return 1;
}
return -1;
}
});
}

private static int writeFile(String data, String file, boolean isAppend)
{
int code = 1;
try
{
FileWriter fw = new FileWriter(file, isAppend);
fw.write(data);
fw.flush();
fw.close();
}
catch(IOException e)
{
code = -1;
}
return code;
}

public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
int step = 1;
String line = "";
String choosed;
loop: while(true)
{
if(step == 1)
{
System.out.print("输入任意多个整数,并以逗号分开:");
line = scanner.nextLine().trim();
if(!line.matches("^\\d+([,,]\\d+)+$"))
{
continue;
}
step = 2;
}
else if(step == 2)
{
System.out.print("请选择:1.数组排重 2.随机打乱:");
choosed = scanner.nextLine().trim();
if(!choosed.matches("^[12]$"))
{
System.out.println("输入错误!");
continue;
}
else
{
System.out.print("你的选择是:" + choosed);
String[] array = line.split("[,,]");
String data;
int code;
String regex = "[\\[\\]]";
switch(Integer.parseInt(choosed))
{
case REMOVE:
String[] result = remove(array);
data = Arrays.toString(result).replaceAll(regex, "") + LINE;
System.out.println("操作结果: " + data);
code = writeFile(data, FILE, true);
if(code == 1)
{
System.out.println("成功写入文件");
}
else
{
System.out.println("失败写入文件");
}
break;
case RANDOM:
random(array);
data = Arrays.toString(array).replaceAll(regex, "") + LINE;
System.out.println("操作结果: " + data);
code = writeFile(data, FILE, true);
if(code == 1)
{
System.out.println("成功写入文件");
}
else
{
System.out.println("失败写入文件");
}
break;
default:
break;
}
while(true)
{
System.out.println("是否继续?继续按3,退出按4");
line = scanner.nextLine().trim();
if("3".equals(line))
{
step = 1;
continue loop;
}
else if("4".equals(line))
{
scanner.close();
break loop;
}
else
{
continue;
}
}
}
}
}
}
}



import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import java.util.Set;

/**
 * java 编程实现接收键盘输入任意多个整数,并以逗号分开, 然后选择数组排重或随机打乱。返回排序输出结果,并写入指定文件
 * asd.txt保存(以追加方式写入) 请选择:1.数组排重2.随机打乱 1,2,1,2,5,6,1
 * 
 * @author cp
 *
 */
public class Random {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("1、输入a结束输入");
List<String> list = new ArrayList<>();
String a = "";
int count = 0;
while (true) {
count++;
System.out.print("请输入第" + count + "个数字:");
a = scanner.next();
if (a.equals("a")) {
break;
}
list.add(a);
}
System.out.print("你输入的数字为:");
for (String s : list) {
System.out.print(s + ",");
}
System.out.println();
int menu=-1;
do{
System.out.println("1、数组排重");
System.out.println("2、随机打乱");
System.out.println("3、退出系统");
System.out.print("请选择:");
menu= scanner.nextInt();
switch (menu) {
case 1:


System.out.print("排重之后:");
Set<String> s=paichun(list);
//迭代器输出set集合
Iterator<String> its=s.iterator();
while(its.hasNext()){
System.out.print(its.next()+",");
}
System.out.println();
break;
case 2:
System.out.print("打乱之后为:");
String[] st1=daluan(list);
for (int i = 0; i < st1.length; i++) {
System.out.print(st1[i]+",");
}
System.out.println();
break;
default:
break;
}
}while(menu!=3);

}
//排重方法
public static Set<String> paichun(List<String> list1){
//set中不能有重复的元素,所以最后回返回一个没有重复元素的set集合
Set<String> s=new HashSet<>();
for (int i = 0; i <list1.size(); i++) {
s.add(list1.get(i));
}

return s;
}


/**
 * 将排重之后的集合,传到数组里然后在数组中随机打乱
 * @param list2
 * @return
 */
public static String[] daluan(List<String> list2){
String[] s1=new String[list2.size()];
Set<String> set=paichun(list2);
//将排重之后的集合,传到数组里
Iterator<String> its=set.iterator();
int i=0;
while(its.hasNext()){
s1[i]=its.next();
i++;
}
//在数组中随机打乱
int a=(int)(Math.random()*s1.length+1)-1;//产生一个随机数,在数组的下标范围之内
for (int j = 0; j < 3; j++) {
String temp=s1[j];
s1[j]=s1[a];
s1[a]=temp;
}
return s1;
}

}


package test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;

/**
 * @author -----
 * @DATE 2015-9-2
 */
public class TestArray {
    private Integer[] data;

    public void inputDataFromConsole() {
        Scanner sc = new Scanner(System.in);
        System.out.println("键盘输入任意多个整数,并以逗号分开");

        String dataStr = sc.nextLine();
        String[] dataStrArray = dataStr.split(",");

        List<Integer> dataList = new ArrayList<Integer>();

        for (String s : dataStrArray) {
            Integer item = null;
            try {
                item = Integer.parseInt(s);
            } catch (Exception e) {
                e.printStackTrace();
                // 如果输入有误,直接忽略把,你也可以更换逻辑
                continue;
            }
            dataList.add(item);
        }

        if (dataList.size() == 0) {
            System.out.println("没有输入数据,所以系统将推出");
            System.exit(1);
        }

        data = new Integer[dataList.size()];

        dataList.toArray(data);
    }

    public void command() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入指令:1.数组排重2.随机打乱");
        String command = sc.next("\\d");
        System.out.println("你选择了" + command + ":");
        switch (Integer.parseInt(command)) {
        case 1:
            distinct();
            break;
        case 2:
            shuffle();
            break;
        default:
            // do nothing,it must be error
        }

    }

    public void distinct() {
        Set<Integer> set = new HashSet<Integer>();
        Collections.addAll(set, data);
        data = new Integer[set.size()];
        set.toArray(data);
        System.out.println(set);
    }

    public void shuffle() {
        List<Integer> list = Arrays.asList(data);
        Collections.shuffle(list);
        list.toArray(data);
        System.out.println(list);
    }

    public static void main(String args[]) {
        TestArray ta = new TestArray();
        ta.inputDataFromConsole();
        ta.command();
    }
}

就帮到这里,文件写入,你可以自己补充,主要部分我帮你实现了。



import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
while(true){
test();
}
}


//入口方法
public static void test(){
 System.out.println("请输入一批整数,用逗号隔开。"); 
    Scanner sc = new Scanner(System.in); 
    String str = sc.next();
    System.out.println("请选择:1.数组排重2.随机打乱;3.重新输入一批整数"); 
    while (sc.hasNext()) {
     //接收整数
        int i = sc.nextInt(); 
        switch(i){
        case 1:
         System.out.println("数组排重:"+i); 
         sortNum(str);
         break;
        case 2:
         System.out.println("随机打乱:"+i); 
         mix(str);
         break;
        case 3:
         test();
        }
         
    }
    sc.close();
}


//数组排重
public static void sortNum(String str){

        String[] array = str.split(",");
        Arrays.sort(array);//排下序
        StringBuilder sb = new StringBuilder();
        for (String s : array) {
            if(sb.indexOf(s) != -1){
                continue;
            }
            sb.append(s).append(",");
        }
        String newStr = sb.toString().substring(0,sb.length() - 1);
        //将newStr写入文件,自己完成
        System.out.println(newStr);
}

//随机打乱
public static void mix(String str){
        List<String> list=Arrays.asList(str.split(","));
        Collections.shuffle(list);
        String newStr = new String();
        for(String s:list){
         newStr+=s+",";
        }
        //去掉最后一个逗号
        newStr = newStr.substring(0, newStr.length()-1);
        //将newStr写入文件,自己完成
        System.out.println(newStr);
    }




}


package test;

import java.io.*;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
import java.util.Iterator;
import java.util.List;

public class a10 {
static int[] retArr(String is){
int[] a=new int[20];
String[] strArr=is.split(",");
for(int i=0;i<strArr.length;i++){
a[i]=Integer.parseInt(strArr[i]);
}
return a;
}
static int[] retArrl(int[] is){
int[] a=new int[20];
Random r=new Random();
List<Integer> list=new ArrayList<Integer>();
int i=0;
while(list.size()<is.length){
i=r.nextInt(is.length);
if(!list.contains(i)) list.add(i);
}
i=0;
Iterator<Integer> iter=list.iterator();
while(iter.hasNext()){
a[i]=iter.next();
i++;
}

return a;
}
private static int[] retArr2(int[] is) {
// TODO Auto-generated method stub
int[] a=new int[20];
List<Integer> list=new ArrayList<Integer>();
int i=0;
for(i=0;i<is.length;i++){
if(!list.contains(is[i])) list.add(is[i]);
}
Iterator<Integer> iter=list.iterator();
i=0;
while(iter.hasNext()){
a[i]=iter.next();
i++;
}
return a;
}
public static void main(String[] args) throws IOException{
Scanner sc=new Scanner(System.in);
System.out.println("please input your num:");
String str=sc.nextLine();
System.out.println("please input your choice:");
int ch=sc.nextInt();
int[] b=retArr(str) ;
System.out.print("yours input is:");
for(int i=0;i<b.length;i++){
System.out.print(b[i]+" ");
}
System.out.println();
System.out.println("yours choice is:"+ch);
for(int i=0;i<retArrl(b).length;i++){
System.out.print(retArrl(b)[i]+" ");
}
System.out.println();
for(int i=0;i<retArr2(b).length;i++){
System.out.print(retArr2(b)[i]+" ");
}
System.out.println();
File myfile=new File("F://e/javatest/asd.txt");
try{
myfile.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
FileOutputStream out=new FileOutputStream(myfile);

int[] c;
if(ch=='2'){
c=retArrl(b);
try{
for(int i=0;i<c.length;i++){
out.write(c[i]);
out.write('\0');
}
out.close();
}catch(ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
}
else if(ch == '1'){
c=retArr2(b);
try{
for(int i=0;i<c.length;i++){
out.write(c[i]);
}
out.close();
}catch(ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}
}
else
c=b;
try{
for(int i=0;i<c.length;i++){
out.write(c[i]);
}
out.close();
}catch(ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}

}

}
具体思路就是这样,有错误,不想找了



西沙群岛17832067200: JAVA语言编程中如何接收一个从键盘中输入的数字或其他字符? -
魏葛诺佳: 1 2 3Scanner sc =newScanner(System.in); intn = sc.nextInt(); // 接受数字 String str = sc.nextLine(); // 接受字符

西沙群岛17832067200: java 编程实现接收键盘输入任意多个整数,并以逗号分开,然后选择数组排重或随机打乱.返回排序输 -
魏葛诺佳: import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Scanner; import java.util.Set;/*** java 编程实现接收键盘输入任意多个整数,并以逗号分开, 然后选择数组排重或随机打乱.返回排序输...

西沙群岛17832067200: JAVA中怎样接受键盘输入?类似于C语言中的scanf()语句? -
魏葛诺佳: JAVA中有Scanner类可以实现这一目的; 示例代码: public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入整数:");//此处会让你通过控制台输入数字int num = scanner.nextInt();System.out.println(num + 1); }

西沙群岛17832067200: JAVA程序里怎么接收用户键盘录入的信息 -
魏葛诺佳: java接受用户从键盘录入的信息的话,一般是使用scanner类,如下:Scanner sc = new Scanner(System.in)这样就能接受用户键盘输入的数字/字符串

西沙群岛17832067200: JAVA语言编程中如何接收一个从键盘中输入的数字或其他字符?
魏葛诺佳: System.in

西沙群岛17832067200: Java编程中如何读取键盘输入
魏葛诺佳: 使用System.in.read可以读取键盘的输入,但是一般不会这样去操作,可以使用java.util.Scanner来配合System.in来进行数据的操作,举例如下: Scannerin=newScanner(System.in); StringreadLine=in.nextLine();//读取键盘输入的一行(以回车换行为结束输入)

西沙群岛17832067200: 用java怎么实现接收屏幕输入的信息 -
魏葛诺佳: 如果是指输入信息的话,java中有不同的控件,如textbox,textarea等,都可以接收输入的信息,通过getString()方法就可以获得输入框里的信息,如果是指按键信息的话, 可以通过实现键盘事件接口来处理键盘信息

西沙群岛17832067200: java读取键盘输入的任意字符串,如:She is a very good teacher, 按要求执行以下操 -
魏葛诺佳: public static void main(String[] args) { String str = "She is a very good teacher"; String[] strs = str.split("\\s+"); String newStr = ""; //把首字母变大写 for (int i = 0; i//可以加判断如果一个字母就不大写等等 newStr += strs[i].substring(0, 1)....

西沙群岛17832067200: java如何接收键盘输入信息 -
魏葛诺佳: 亲,你好!在public static void main(String [] args){}里添加如下代码 :java.util.Scanner input=new java.util.Scanner(System.in);

西沙群岛17832067200: 在java中怎么获取输入的单个字符 -
魏葛诺佳: 通过Java语言获取从键盘输入的单个字符的编程思想和方法如下:1.首先在使用Java编程时,需要先导入java工具包,这样后面才可以使用接受输入和输出的java语句.2.然后需要创建一个输入类的对象,这里类的名称命名为scan对象.3.接着定义一个s的字符串变量,接受键盘的任意字符串的输入.4.然后使用charAt()函数截取刚刚保存在s的第一个字符.需要注意的是,在java的函数中第一个游标为0.5.最后再使用java的输出语句块将结果输入即可,这样就成功获取输入的单个字符.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网