java - 输入数据时出现问题

标签 java

我编写了一个程序,应该以某种方式打印输入。现在我使用逗号来分割输入。但是,输入列表以这种形式提供给我:

10.10.4.0-24
10.100.0.0-16
10.102.0.0-16
10.106.0.0-20
10.117.0.0-16
10.118.0.0-16
10.15.128.0-24

而且这个列表也更长。我只是在它们之间插入逗号并将它们放在同一行,但这非常乏味。我尝试使用 String rawdata[]=raw.split(""); 而不是 String rawdata[]=raw.split(","); 但它没有按照我的意思工作。它不是为每个输入打印所需的输出,而是像这样打印:

 Enter ip addresses separated by commas, no spaces(e.g. 10.105.128.0-19,10.120.192.0-22).
10.10.4.0-24
10.100.0.0-16
10.102.0.0-16
10.106.0.0-20
10.117.0.0-16
10.118.0.0-16

set network virtual-router VR-TZ7 routing-table ip static-route 10.118.0.0-16-TSA_TZ nexthop ip-address 10.22.238.99
set network virtual-router VR-TZ7 routing-table ip static-route 10.118.0.0-16-TSA_TZ interface ethernet1/7
set network virtual-router VR-TZ7 routing-table ip static-route 10.118.0.0-16-TSA_TZ metric 10
set network virtual-router VR-TZ7 routing-table ip static-route 10.118.0.0-16-TSA_TZ admin-dist 10
set network virtual-router VR-TZ7 routing-table ip static-route 10.118.0.0-16-TSA_TZ destination 10.118.0.0/16

我的程序中是否可以使用一个分隔符来处理这种格式的数字?

我的程序如下:

import java.util.Scanner;
public class POPprogTSA
{  
public static void main(String[] args)
{

Scanner s = new Scanner(System.in);
System.out.println("Enter ip addresses separated by commas, no spaces(e.g. 10.105.128.0-19,10.120.192.0-22).");
String raw= s.nextLine();
String rawdata[]=raw.split(",");
/*set network virtual-router VR-TZ7 routing-table ip static-route 10.10.4.0-24-TSA_TZ nexthop ip-address 10.22.238.99
set network virtual-router VR-TZ7 routing-table ip static-route 10.10.4.0-24-TSA_TZ interface ethernet1/7
set network virtual-router VR-TZ7 routing-table ip static-route 10.10.4.0-24-TSA_TZ metric 10
set network virtual-router VR-TZ7 routing-table ip static-route 10.10.4.0-24-TSA_TZ admin-dist 10
set network virtual-router VR-TZ7 routing-table ip static-route 10.10.4.0-24-TSA_TZ destination 10.10.4.0/24
*/  
//TSA
for (int i = 0; i<= rawdata.length-1; i++)
{ 

 System.out.println("set network virtual-router VR-TZ7 routing-table ip static-route " + rawdata[i] + "-TSA_TZ nexthop ip-address 10.22.238.99");
 System.out.println("set network virtual-router VR-TZ7 routing-table ip static-route " + rawdata[i] + "-TSA_TZ interface ethernet1/7");
 System.out.println("set network virtual-router VR-TZ7 routing-table ip static-route " + rawdata[i] + "-TSA_TZ metric 10");
 System.out.println("set network virtual-router VR-TZ7 routing-table ip static-route " + rawdata[i] + "-TSA_TZ admin-dist 10");
 System.out.println("set network virtual-router VR-TZ7 routing-table ip static-route " + rawdata[i] + "-TSA_TZ destination " +(rawdata[i].replace("-","/")));
 System.out.println(" ");





}     
}


}

每个数字的结果应该采用以下形式:

set network virtual-router VR-TZ7 routing-table ip static-route 10.10.4.0-24-TSA_TZ nexthop ip-address 10.22.238.99
set network virtual-router VR-TZ7 routing-table ip static-route 10.10.4.0-24-TSA_TZ interface ethernet1/7
set network virtual-router VR-TZ7 routing-table ip static-route 10.10.4.0-24-TSA_TZ metric 10
set network virtual-router VR-TZ7 routing-table ip static-route 10.10.4.0-24-TSA_TZ admin-dist 10
set network virtual-router VR-TZ7 routing-table ip static-route 10.10.4.0-24-TSA_TZ destination 10.10.4.0/24

如有任何建议,我们将不胜感激!

最佳答案

一种选择是让用户一次输入一个输入,但不断提示他们(使用 nextLine() 进行阅读),直到输入“end”一词。然后,您可以复制行分隔列表并将其粘贴到控制台中;在末尾输入“end”。

或者,如果您希望用户能够将一堆内容复制并粘贴到一行中,您可以使用 .split("[\\s]+") 来允许 条目之间任意数量的空格(包括换行符;尽管 nextLine() 无论如何都会吃掉换行符)。

另一个选项是将列表存储在文本文件中。然后您可以提示用户输入要导入的文件的名称。然后您可以打开该文件并逐行读取它。

关于java - 输入数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22419312/

相关文章:

java - 按位运算符和 boolean 运算符之间的差异 'AND'

java - 一个 Observable 对另一个 RxJava2 的依赖

java - 给定一个 Configuration 对象,如何创建 PropertiesConfiguration 对象?

Java 9 模块和类路径 hell : conflicting class names

java - 如何使用 JAXB Moxy 解码具有未命名字段的 JSON

显示警报消息时 Javafx 全屏应用程序会最小化

java - 在 Struts2 中处理数百个操作

java - 在 BrowserStack 中的不同浏览器上运行 JUnit Suite 的配置文件

java - 使用 java 启动 derby 数据库服务器和客户端

java - 错误 :java. util.concurrent.ExecutionException : com. android.builder.internal.aapt.v2.Aapt2Exception:AAPT2 错误