首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java ISBN格式

Java ISBN格式
EN

Stack Overflow用户
提问于 2016-04-11 22:25:53
回答 3查看 865关注 0票数 0

我正试图编写一个程序,读取图书的库存文件,并生成一个被写入屏幕的库存报告。我有困难试图格式化ISBN号码。输入文件中的ISBN是一个10位序列(Ex: 0321479270)。对于报告,我需要将其重新格式化为1-3-5-1位数字(ex0-321-479270)。

这是我到目前为止..。

代码语言:javascript
复制
import java.util.Scanner;
import java.io.File;
import java.io.IOException;

public class Inventory
{
    public static void main(String[] args)throws IOException 
    {

        //Vaiable declartions 
        int edition, quanity;
        double pricePerBook;
        String isbn, author, title, publisher;

        //Open the file and set delimiters
        File file = new File("inventory.txt");
        Scanner inputFile = new Scanner(file);
        inputFile.useDelimiter("_|/|\\r?\\n");

        //Read from the file
        while (inputFile.hasNext())
        {
            isbn = inputFile.next();
            author = inputFile.next();
            title = inputFile.next();
            edition = inputFile.nextInt();
            publisher = inputFile.next();
            quanity = inputFile.nextInt();
            pricePerBook = inputFile.nextDouble();
            System.out.printf("%s" /* %s %s %d %s %d %f "*/, formatISBN(isbn)); //, author, title, edition, publisher, quanity, pricePerBook);
        }

        //Close the flie
        inputFile.close();
    }

    //ISBN Method
    public static String formatISBN(String isbn)
    {
        if (isbn.length() == 1)
        {
            isbn += -;
            return isbn;
        }
    }
} 

所以我在ISBN方法上有问题,我似乎不知道如何用"-“打印ISBN。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-11 22:50:44

提取子字符串是最简单的:

代码语言:javascript
复制
return String.format("%s-%s-%s-%s",
                     isbn.substring(0, 0 + 1),
                     isbn.substring(1, 1 + 3),
                     isbn.substring(4, 4 + 5),
                     isbn.substring(9, 9 + 1));
票数 1
EN

Stack Overflow用户

发布于 2016-04-11 22:53:18

您可以使用正则表达式:

代码语言:javascript
复制
return isbn.replaceAll("(\\d)(\\d{3})(\\d{5})(\\d)", "$1-$2-$3-$4");
票数 1
EN

Stack Overflow用户

发布于 2016-04-11 23:26:13

或者使用StringBuilder:

代码语言:javascript
复制
StringBuilder result = new StringBuilder();
StringBuilder stringBuilder = new StringBuilder("0321479270");
result.append(stringBuilder.charAt(0));
result.append("-");
result.append(stringBuilder.substring(1,3));
result.append("-");
result.append(stringBuilder.substring(4));
return result.toString();

请记住,只有在isbn格式良好的情况下,这才有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36560379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档