zoukankan      html  css  js  c++  java
  • AJPFX:求两个城市之间的距离

    键盘录入多个城市: 城市1,城市2,城市3  以 ### 结束输出
    然后再键盘录入各个城市之间的距离:  格式如下:
    0,12,45
    12,0,22
    45,22,0
    ###

    然后按照输入的两个城市,求得两个城市之间的距离:城市1 城市2

    代码如下:
    package com.johnson.test;

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Map.Entry;
    import java.util.Scanner;
    import java.util.Set;

    public class Test3 {

            /**
             * @param args
             */
            public static void main(String[] args) {
                    //存储两个城市的字符串 如 : 长沙 武汉
                    ArrayList<String> list = new ArrayList<String>();
                    //存储两个城市的字符串为键,距离为值 如 : 长沙 武汉,22
                    HashMap<String,Integer> cityDistance = new HashMap<String, Integer>();
                    Scanner sc = new Scanner(System.in);
                    System.out.println("请输入格式如下:城市1 城市2 城市3 ###");
                    String line;
                    while(true){
                            line = sc.nextLine();
                            if(line.endsWith("###")){
                                    break;
                            }else{
                                    System.out.println("请重输入:格式如下:城市1 城市2 城市3 ###");
                            }
                    }
                    //去除字符串后面的###号
                    line = line.substring(0,line.length()-3);

                    //将所有可能的城市组合存储在集合中
                    String[] arr = line.split(" ");
                    for (int i = 0; i < arr.length; i++) {
                            for (int j = 0; j < arr.length; j++) {
                                    list.add(arr[i]+" "+arr[j]);
                            }
                    }
                    System.out.println("请输入城市之间的距离:格式如下:距离1 距离2 距离3");
                    String disString ;

                    //将list集合中的所有城市组合与输入的距离进行匹配,并存入到map集合中
                    int i = 0;
                    while(true){
                            disString = sc.nextLine();
                            if(disString.endsWith("###")){
                                    break;
                            }else{
                                    String[] dis = disString.split(" ");
                                    for (int j = 0; j < dis.length; j++) {
                                            //cityDistance.put(arr[i]+tm.get(arr[i]), Integer.parseInt(dis[j]));
                                            cityDistance.put(list.get(i), Integer.parseInt(dis[j]));
                                            i++;
                                    }
                            }
                    }
                    //System.out.println(cityDistance);
                    System.out.println("请输入两个城市,格式:城市1 城市2");
                    b:for(;;){
                            String input = sc.nextLine();
                            if(input.equals("quit")){
                                    break;
                            }
                            //遍历集合,查找是否存在键盘录入的两个城市
                            Set<Entry<String, Integer>> entrySet = cityDistance.entrySet();
                            a:for (Entry<String, Integer> en : entrySet) {
                                    String key = en.getKey();
                                    //如果存在,输出距离
                                    if(input.equals(key)){
                                            System.out.println(en.getValue());
                                            break b;
                                    } else{
                                            //System.out.println("找不到距离");
                                            continue a;
                                    }
                            }

                            //如果遍历完之后,没有找到,则输出找不到距离
                            System.out.println("找不到距离");
                            
                    }
            }

    }

  • 相关阅读:
    【西北师大-18软工】第三次作业成绩汇总
    【西北师大-18软工】第一次作业成绩汇总
    2017面向对象程序设计(Java)总结
    面向对象分析与设计中类的设计
    2017面向对象程序设计(Java)第十四周学习总结
    2017面向对象程序设计(Java)第十周学习总结
    2017面向对象程序设计(Java)第九周学习总结
    关于在eclipse中使用LocalDate类的问题
    JAVA程序导入eclipse的简易教程
    2017面向对象程序设计(Java)学习总结
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10867824.html
Copyright © 2011-2022 走看看