键盘录入多个城市: 城市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("找不到距离");
                        
                }
        }

}

AJPFX:求两个城市之间的距离的更多相关文章

  1. 高德地图 API 计算两个城市之间的距离

    1. 目前在项目中,遇到一个需求不会做,就是要计算两个城市之间的距离,而这两个城市的输入是可变的,如果要使用数据库来先存储两地之间的距离,调用的时候再来调用,那么存数据的时候,要哭的,因为光是省级区域 ...

  2. 设计一个Mypoint类,求两个点之间的距离

    package Test; public class test6 { public static void main(String[] args) { // TODO Auto-generated m ...

  3. IOS 计算两个经纬度之间的距离

    IOS 计算两个经纬度之间的距离 一 丶 -(double)distanceBetweenOrderBy:(double) lat1 :(double) lat2 :(double) lng1 :(d ...

  4. js 求两个日期之间相差天数

    //求两个日期之间的相差天数 function daysBetween(DateOne, DateTwo) { var OneMonth = DateOne.substring(5, DateOne. ...

  5. java如何计算两个经纬度之间的距离?

    /*计算两个经纬度之间的距离 结果单位:米 */public static double getDistance(String lat1Str, String lng1Str, String lat2 ...

  6. PHP 求两个日期之间相差的天数、月数

    <?php /** * 求两个日期之间相差的天数 * (针对1970年1月1日之后,求之前可以采用泰勒公式) * @param string $day1 * @param string $day ...

  7. Frogger POJ - 2253(求两个石头之间”所有通路中最长边中“的最小边)

    题意 ​ 题目主要说的是,有两只青蛙,在两个石头上,他们之间也有一些石头,一只青蛙要想到达另一只青蛙所在地方,必须跳在石头上.题目中给出了两只青蛙的初始位置,以及剩余石头的位置,问一只青蛙到达另一只青 ...

  8. JavaScript求两个数字之间所有数字的和

    这是在fcc上的中级算法中的第一题,拉出来的原因并不是因为有什么好说的,而是我刚看时以为是求两个数字的和, 很显然错了.我感觉自己的文字理解能力被严重鄙视了- -.故拉出来折腾折腾. 要求: 给你一个 ...

  9. PHP MYSQL 搜索周边坐标,并计算两个点之间的距离

    搜索附近地点,例如,坐标(39.91, 116.37)附近500米内的人,首先算出“给定坐标附近500米”这个范围的坐标范围. 虽然它是个圆,但我们可以先求出该圆的外接正方形,然后拿正方形的经纬度范围 ...

随机推荐

  1. PM12条

    PM首先是用户 站在用户角度看待问题 用户体验是一个完整的过程 追求效果,不做没用的东西 发现需求,而不是创造需求 决定不做什么,往往比决定做什么更重要 用户是很难被教育的,要迎合用户,而不是改变用户 ...

  2. 【转】使用git 工具下载android.jar Source Code

    为了开发android应用,在开发时发现sdk没有源代码,这样在开发时太麻烦了,下面说说如何下载源代码,以及如何配置. 下载源代码需要git,先下载一个git.下面的操作都是在windows下完成的. ...

  3. [Android6.0][RK3399] 修改默认按键 KEY-PAD 的功能【转】

    本文转载自:http://m.blog.csdn.net/dearsq/article/details/70175637 Platform: RK3399 OS: Android 6.0 Kernel ...

  4. 修改u-boot的开机logo及显示过程【转】

    本文转载自;http://blog.csdn.net/voice_shen/article/details/6789424 [ u-boot: Git://git.denx.de/u-boot.git ...

  5. Java经典算法大全

    1.河内之塔.. 2.Algorithm Gossip: 费式数列. 3. 巴斯卡三角形 4.Algorithm Gossip: 三色棋 5.Algorithm Gossip: 老鼠走迷官(一) 6. ...

  6. struts2添加需要的jar包

    转自:https://blog.csdn.net/fance611261/article/details/6790737 以前总是在myeclipse中添加jar包的,由于现在转向了eclipse,原 ...

  7. 任务46:Identity MVC:登录逻辑实现

    任务46:Identity MVC:登录逻辑实现 实现登陆的方法 退出方法 _layout里面增加如下的代码: Login.cshtml 运行代码测试: 这个地方的单词之前拼错了.这里进行修正 输入账 ...

  8. CentOS Linux自动备份MySQL数据库到远程FTP服务器并删除指定日期前的备份Shell脚本

    说明: 我这里要把MySQL数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2011_11_03.tar ...

  9. [NEXT] 时间管理实践

    此文已由作者杨卫强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 我个人认为,浪费时间比较主要的原因有两个 工作缺乏计划 工作过程被打扰,效率低下 以下记录我自己的时间管理实 ...

  10. Java简单高精度合集

    第一个Java的算法程序.记得可以使用Alt+'/'自动补全sysout和main之类的. BigInteger在java.math.BigInteger中. import java.math.Big ...