如何解析输入字符串并以规范化方式打印? (Java)的

时间:2017-02-04 06:55:10

标签: java

我需要一个程序来解析输入字符串(电子邮件地址)并以规范化格式打印它。它应该有3个由','分隔的部分,如下所示:Int,Int,String前两个整数部分表示程序应提取的子字符串的第一个和最后一个字符的索引。 例如,假设我输入以下内容作为输入:0,6,alex.da @ yahoo.com =>输出应该变为=> alex.da 有谁知道怎么做?

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

Scanner stdIn = new Scanner(System.in);

    System.out.println("enter your Email:");
    String response = stdIn.nextLine(); 

    String first=response.substring(0,1);
    int second=response.indexOf(response.charAt(2));
    System.out.println(response.substring(response.indexOf(response.substring(0, 1))+4));    
    } //This is where I get stuck!

2 个答案:

答案 0 :(得分:0)

使用,拆分整个字符串,然后解析开始两个字符串以获取位置并在第三个字符串上应用String#subString,如下所示

String response = stdIn.nextLine(); 
String arr[] = response.split(","); // this will make three strings as "0" , "6", "alex.da@yahoo.com"
int first=Integer.parseInt(arr[0]);
int second=Integer.parseInt(arr[1]);
System.out.println(arr[2].substring(first, second + 1); 

答案 1 :(得分:0)

首先,您需要将输入字符串分隔为其构造部分,方法是使用逗号作为分隔符:

List<String> paramaters = Arrays.asList(response.split(","));

然后你需要根据你的要求提取子串:

String first = response.substring(Integer.parseInt(paramaters[0]),Integer.parseInt(parameters[1]));

变量first然后会保存你的子串。