• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Sybex829. How to distinguish essential and incidental white space?

 
Ranch Foreman
Posts: 626
2
  • Number of slices to send:
    Optional 'thank-you' note:
tb864615.OCPJAVASE17PT.c01.011

The supplied answer says: There is only essential whitespace.



OUTPUT:

|
    green
        yellow
|

I have to resort to screenshots because copy-paste is changing the indent


The book says,

Imagine a vertical line drawn on the leftmost non-whitespace character in your text block. Everything to the left of it is incidental whitespace, and everything to the right is essential whitespace.




Is the "leftmost non-whitespace character in your text block" the 'g'?
If so, aren't there both incidental  and essential whitespace?
boyarsky-textblock.png
boyarsky-textblock2.png
boyarsky-textblock3.png
 
Marshal
Posts: 4525
572
  • Number of slices to send:
    Optional 'thank-you' note:

Campbell provided some good references in this post from last year: Text Block Incidental and Essential whitespace confusion

Campbell Ritchie wrote:Remember that the definitive guide is the Java® Language Specification (=JLS). That tells you that the whitespace is stripped by the same algorithm as String#stripIndent(). Have a look at that method; the rules are too complicated to copy.

 
Ron McLeod
Marshal
Posts: 4525
572
  • Number of slices to send:
    Optional 'thank-you' note:
Try replacing this:with something like this:to show a vertical bar for each line in the text block.

 
Marshal
Posts: 79392
377
  • Number of slices to send:
    Optional 'thank-you' note:
I changed the format of the following text:-

Anil Philip wrote:. . .
OUTPUT:

|
    green
        yellow
|

I have to resort to screenshots because copy-paste is changing the indent

Not if you change the format to a monospaced font as I did above. Please copy the declaration of the text block onto JShell and you can see the result. I have again used a monospaced font:-

My JShell wrote:jshell> var block = """
  ...>        
  ...>                 green
  ...>                     yellow
  ...>             """;
block ==> "\n    green\n        yellow\n"

jshell>

jshell> var block = """
  ...>
  ...>      green
  ...>         yellow
  ...> """;
block ==> "\n     green\n        yellow\n"

jshell> f14();
|
    green
        yellow
|

. . . Is the "leftmost non-whitespace character in your text block" the 'g'? . . .

No, I think the quotes in the closing delimiter are. In which case there is incidental whitespace in the text block in your code. It depends on whether the book shows the """ at the left margin or not; I can't read your screenshots just at the moment. I was also going to find the two links Ron found.
 
Campbell Ritchie
Marshal
Posts: 79392
377
  • Number of slices to send:
    Optional 'thank-you' note:

A few minutes ago, I wrote:. . . It depends on whether the book shows the """ at the left margin or not . . .

Have another look at your screenshot and you will see whether the delimiters are up against the left margin, and whether you added incidental whitespace when you wrote the f14() method.
 
Anil Philip
Ranch Foreman
Posts: 626
2
  • Number of slices to send:
    Optional 'thank-you' note:

Campbell Ritchie wrote:

A few minutes ago, I wrote:. . . It depends on whether the book shows the """ at the left margin or not . . .

Have another look at your screenshot and you will see whether the delimiters are up against the left margin, and whether you added incidental whitespace when you wrote the f14() method.



I wish peace and prosperity on all of us in the New Year!  

I am trying to understand which of the blocks below have incidental whitespace, which have essential whitespace, and which have both.

I am using IntelliJ so I guess it isn't monospaced.
Using Ron's suggestion, I printed out each line.



See screenshots:

boyarsky-textblock5.png
boyarsky-textblock6.png
 
Anil Philip
Ranch Foreman
Posts: 626
2
  • Number of slices to send:
    Optional 'thank-you' note:

Anil Philip wrote:I am trying to understand which of the blocks below have incidental whitespace, which have essential whitespace, and which have both.



I am thinking that
blockA has both?
blockB has both?
blockC has both?
 
Ron McLeod
Marshal
Posts: 4525
572
  • 1
  • Number of slices to send:
    Optional 'thank-you' note:
This document on the Oracle web site offers a good explanation: Programmer's Guide to Text Blocks
 
Anil Philip
Ranch Foreman
Posts: 626
2
  • Number of slices to send:
    Optional 'thank-you' note:

Ron McLeod wrote:This document on the Oracle web site offers a good explanation: Programmer's Guide to Text Blocks



This is great - thanks! I will study it.
 
Campbell Ritchie
Marshal
Posts: 79392
377
  • Number of slices to send:
    Optional 'thank-you' note:

Anil Philip wrote:. . . I am using IntelliJ so I guess it isn't monospaced.

The text is whichever option you chose; it probably monospaced on yout IDE but only monospaced on the Ranch if you use the monospaced button, which has “tt” on.

. . . See screenshots:

I can't; the screenshots disappear from the reply screen. Screenshots have lots of problems which you wouldn't have if you used text. And please don't write such long lines in code tags.
Your output does however show where the incidental whitespace ends and where the essential whitespace begins.
 
Anil Philip
Ranch Foreman
Posts: 626
2
  • Number of slices to send:
    Optional 'thank-you' note:

Campbell Ritchie wrote: only monospaced on the Ranch if you use the monospaced button, which has “tt” on.

. . . See screenshots:

I can't; the screenshots disappear from the reply screen. Screenshots have lots of problems which you wouldn't have if you used text. And please don't write such long lines in code tags..



I did not know what the 'tt' button was - thanks. Will keep code lines short.
I don't know how you cannot see screenshots but I can - I am using the Edge browser. I am also able to see them on Chrome and Firefox.
 
Campbell Ritchie
Marshal
Posts: 79392
377
  • Number of slices to send:
    Optional 'thank-you' note:

Anil Philip wrote:. . . I don't know how you cannot see screenshots . . .

One of those little mysteries of life.
I can see screenshots at other times, and going back to your first screenshot of the question, that """ appears to be at the very left of the screen. Remembering the conventions that what you see is what you get, but all resources for the code to compile, e.g. imports, are supplied, then that original version of the text contained no incidental whitespace, and the answer given was correct.
 
author & internet detective
Posts: 41905
909
  • 1
  • Number of slices to send:
    Optional 'thank-you' note:

Anil Philip wrote:Is the "leftmost non-whitespace character in your text block" the 'g'?


Np

 
Anil Philip
Ranch Foreman
Posts: 626
2
  • Number of slices to send:
    Optional 'thank-you' note:

Jeanne Boyarsky wrote:

Anil Philip wrote:Is the "leftmost non-whitespace character in your text block" the 'g'?


Np


thanks for the clarification
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic
vceplus-200-125    | boson-200-125    | training-cissp    | actualtests-cissp    | techexams-cissp    | gratisexams-300-075    | pearsonitcertification-210-260    | examsboost-210-260    | examsforall-210-260    | dumps4free-210-260    | reddit-210-260    | cisexams-352-001    | itexamfox-352-001    | passguaranteed-352-001    | passeasily-352-001    | freeccnastudyguide-200-120    | gocertify-200-120    | passcerty-200-120    | certifyguide-70-980    | dumpscollection-70-980    | examcollection-70-534    | cbtnuggets-210-065    | examfiles-400-051    | passitdump-400-051    | pearsonitcertification-70-462    | anderseide-70-347    | thomas-70-533    | research-1V0-605    | topix-102-400    | certdepot-EX200    | pearsonit-640-916    | itproguru-70-533    | reddit-100-105    | channel9-70-346    | anderseide-70-346    | theiia-IIA-CIA-PART3    | certificationHP-hp0-s41    | pearsonitcertification-640-916    | anderMicrosoft-70-534    | cathMicrosoft-70-462    | examcollection-cca-500    | techexams-gcih    | mslearn-70-346    | measureup-70-486    | pass4sure-hp0-s41    | iiba-640-916    | itsecurity-sscp    | cbtnuggets-300-320    | blogged-70-486    | pass4sure-IIA-CIA-PART1    | cbtnuggets-100-101    | developerhandbook-70-486    | lpicisco-101    | mylearn-1V0-605    | tomsitpro-cism    | gnosis-101    | channel9Mic-70-534    | ipass-IIA-CIA-PART1    | forcerts-70-417    | tests-sy0-401    | ipasstheciaexam-IIA-CIA-PART3    | mostcisco-300-135    | buildazure-70-533    | cloudera-cca-500    | pdf4cert-2v0-621    | f5cisco-101    | gocertify-1z0-062    | quora-640-916    | micrcosoft-70-480    | brain2pass-70-417    | examcompass-sy0-401    | global-EX200    | iassc-ICGB    | vceplus-300-115    | quizlet-810-403    | cbtnuggets-70-697    | educationOracle-1Z0-434    | channel9-70-534    | officialcerts-400-051    | examsboost-IIA-CIA-PART1    | networktut-300-135    | teststarter-300-206    | pluralsight-70-486    | coding-70-486    | freeccna-100-101    | digitaltut-300-101    | iiba-CBAP    | virtuallymikebrown-640-916    | isaca-cism    | whizlabs-pmp    | techexams-70-980    | ciscopress-300-115    | techtarget-cism    | pearsonitcertification-300-070    | testking-2v0-621    | isacaNew-cism    | simplilearn-pmi-rmp    | simplilearn-pmp    | educationOracle-1z0-809    | education-1z0-809    | teachertube-1Z0-434    | villanovau-CBAP    | quora-300-206    | certifyguide-300-208    | cbtnuggets-100-105    | flydumps-70-417    | gratisexams-1V0-605    | ituonline-1z0-062    | techexams-cas-002    | simplilearn-70-534    | pluralsight-70-697    | theiia-IIA-CIA-PART1    | itexamtips-400-051    | pearsonitcertification-EX200    | pluralsight-70-480    | learn-hp0-s42    | giac-gpen    | mindhub-102-400    | coursesmsu-CBAP    | examsforall-2v0-621    | developerhandbook-70-487    | root-EX200    | coderanch-1z0-809    | getfreedumps-1z0-062    | comptia-cas-002    | quora-1z0-809    | boson-300-135    | killtest-2v0-621    | learncia-IIA-CIA-PART3    | computer-gcih    | universitycloudera-cca-500    | itexamrun-70-410    | certificationHPv2-hp0-s41    | certskills-100-105    | skipitnow-70-417    | gocertify-sy0-401    | prep4sure-70-417    | simplilearn-cisa    |
http://www.pmsas.pr.gov.br/wp-content/    | http://www.pmsas.pr.gov.br/wp-content/    |