Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Scala find location of string in a string

Tags:

string

scala

I have this string:

var htmlString;

Assigned to:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>Payment Receipt</title>
<link rel="stylesheet" type="text/css" href="content/PaymentForm.css">
<style type="text/css">
</style>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
</head>
<body>
<div id="divPageOuter" class="PageOuter">
    <div id="divPage" class="Page">
        <!--[1]-->
        <div id="divThankYou">
             Thank you for your order!
        </div>
        <hr class="HrTop">
        <div id="divReceiptMsg">
             You may print this receipt page for your records.
        </div>
        <div class="SectionBar">
             Order Information
        </div>
        <table id="tablePaymentDetails1Rcpt">
        <tr>
            <td class="LabelColInfo1R">
                 Merchant:
            </td>
            <td class="DataColInfo1R">
                <!--Merchant.val-->
                Ryan
                <!--end-->
            </td>
        </tr>
        <tr>
            <td class="LabelColInfo1R">
                 Description:
            </td>
            <td class="DataColInfo1R">
                <!--x_description.val-->
                Rasmussenpayment
                <!--end-->
            </td>
        </tr>
        </table>
        <table id="tablePaymentDetails2Rcpt" cellspacing="0" cellpadding="0">
        <tr>
            <td id="tdPaymentDetails2Rcpt1">
                <table>
                <tr>
                    <td class="LabelColInfo1R">
                         Date/Time:
                    </td>
                    <td class="DataColInfo1R">
                        <!--Date/Time.val-->
                        09-Jul-2012 12:26:46 PM PT
                        <!--end-->
                    </td>
                </tr>
                <tr>
                    <td class="LabelColInfo1R">
                         Customer ID:
                    </td>
                    <td class="DataColInfo1R">
                        <!--x_cust_id.val-->
                        <!--end-->
                    </td>
                </tr>
                </table>
            </td>
            <td id="tdPaymentDetails2Rcpt2">
                <table>
                <tr>
                    <td class="LabelColInfo1R">
                         Invoice Number:
                    </td>
                    <td class="DataColInfo1R">
                        <!--x_invoice_num.val-->
                        176966244
                        <!--end-->
                    </td>
                </tr>
                </table>
            </td>
        </tr>
        </table>
        <hr id="hrBillingShippingBefore">
        <table id="tableBillingShipping">
        <tr>
            <td id="tdBillingInformation">
                <div class="Label">
                     Billing Information
                </div>
                <div id="divBillingInformation">
                     Test14 Rasmussen<br>
                    1234 test st<br>
                    San Diego, CA 92107 <br>
                </div>
            </td>
            <td id="tdShippingInformation">
                <div class="Label">
                     Shipping Information
                </div>
                <div id="divShippingInformation">
                </div>
            </td>
        </tr>
        </table>
        <hr id="hrBillingShippingAfter">
        <div id="divOrderDetailsBottomR">
            <table id="tableOrderDetailsBottom">
            <tr>
                <td class="LabelColTotal">
                     Total:
                </td>
                <td class="DescrColTotal">
                     &nbsp;
                </td>
                <td class="DataColTotal">
                    <!--x_amount.val-->
                    US&nbsp;$250.00
                    <!--end-->
                </td>
            </tr>
            </table>
            <!-- tableOrderDetailsBottom -->
        </div>
        <div id="divOrderDetailsBottomSpacerR">
        </div>
        <div class="SectionBar">
             Visa ****0027
        </div>
        <table class="PaymentSectionTable" cellspacing="0" cellpadding="0">
        <tr>
            <td class="PaymentSection1">
                <table>
                <tr>
                    <td class="LabelColInfo2R">
                         Date/Time:
                    </td>
                    <td class="DataColInfo2R">
                        <!--Date/Time.1.val-->
                        09-Jul-2012 12:26:46 PM PT
                        <!--end-->
                    </td>
                </tr>
                <tr>
                    <td class="LabelColInfo2R">
                         Transaction ID:
                    </td>
                    <td class="DataColInfo2R">
                        <!--Transaction ID.1.val-->
                        2173493354
                        <!--end-->
                    </td>
                </tr>
                <tr>
                    <td class="LabelColInfo2R">
                        Authorization Code:
                    </td>
                    <td class="DataColInfo2R">
                        <!--x_auth_code.1.val-->
                        07I3DH
                        <!--end-->
                    </td>
                </tr>
                <tr>
                    <td class="LabelColInfo2R">
                         Payment Method:
                    </td>
                    <td class="DataColInfo2R">
                        <!--x_method.1.val-->
                        Visa ****0027
                        <!--end-->
                    </td>
                </tr>
                </table>
            </td>
            <td class="PaymentSection2">
                <table>
                </table>
            </td>
        </tr>
        </table>
        <div class="PaymentSectionSpacer">
        </div>
    </div>
    <!-- entire BODY -->
</div>
<div class="PageAfter">
</div>
</body>
</html>

And I want to find the location of "x_auth_code.1.val" in the string. And then I want to obtain a string from the location plus a certain number of characters. The goal would be to return the Authorization code.

like image 560
user1491739 Avatar asked Jul 09 '12 19:07

user1491739


Video Answer


1 Answers

You can use indexOfSlice, and then slice() in StringOps

scala> val myString = "Hello World!"
myString: java.lang.String = Hello World!

scala> val index = myString.indexOfSlice("Wo")
index: Int = 6

scala> val slice = myString.slice(index, index+5)
slice: String = World

With your html string:

scala> htmlString.indexOfSlice("x_auth_code.1.val")
res4: Int = 2771
like image 160
Christopher Chiche Avatar answered Sep 27 '22 23:09

Christopher Chiche