<!-- Auto-generated — do not edit by hand -->
# Java String Audit for PTC-Lisp
> **Warning:** This file is auto-generated by `mix ptc.gen_docs` from `priv/java_compat_audit.exs`.
> Manual edits will be overwritten. Edit `priv/java_compat_audit.exs` instead.
Curated LLM-compatibility target for `java.lang.String` methods.
See also: [Function Reference](../function-reference.md) | [Namespace Coverage](index.md) | [Clojure Core Audit](clojure-core-audit.md) | [Clojure String Audit](clojure-string-audit.md) | [Clojure Set Audit](clojure-set-audit.md) | [Clojure Walk Audit](clojure-walk-audit.md) | [Java Math Audit](java-math-audit.md) | [Java Boolean Audit](java-lang-boolean-audit.md) | [Java Double Audit](java-lang-double-audit.md) | [Java Float Audit](java-lang-float-audit.md) | [Java Integer Audit](java-lang-integer-audit.md) | [Java Long Audit](java-lang-long-audit.md) | [Java System Audit](java-lang-system-audit.md) | [Java LocalDate Audit](java-time-local-date-audit.md) | [Java Instant Audit](java-time-instant-audit.md) | [Java Duration Audit](java-time-duration-audit.md) | [Java Period Audit](java-time-period-audit.md) | [Java Date Audit](java-util-date-audit.md)
## Summary
Coverage excludes `not_relevant` entries: `supported / (supported + candidate + not_classified)`.
| Status | Count |
|--------|-------|
| Supported | 9 |
| Candidate | 4 |
| Not Relevant | 2 |
| Not Classified | 0 |
| Relevant Target | 13 |
| Coverage | 9/13 (69.2%) |
| **Total** | **15** |
## Details
| Var | Status | Description | Notes |
|-----|--------|-------------|-------|
| `.charAt` | 🔲 candidate | Return character at index | Potentially useful, but PTC-Lisp must define grapheme semantics. |
| `.contains` | ✅ supported | Substring containment | DIV-40: character literals are accepted as arguments (PTC-Lisp has no Character type). DIV-41: character-literal receivers behave as one-character strings |
| `.endsWith` | ✅ supported | Suffix test | DIV-40: character literals are accepted as arguments (PTC-Lisp has no Character type). DIV-41: character-literal receivers behave as one-character strings |
| `.equalsIgnoreCase` | 🔲 candidate | Case-insensitive string equality | Common Java idiom in generated code. |
| `.getBytes` | ❌ not_relevant | Encode string to bytes | Byte arrays and charsets are outside the sandbox data model. |
| `.indexOf` | ✅ supported | First substring index | BUG GAP-J05: integer character-code overloads are unsupported. BUG GAP-J09: non-BMP offsets are grapheme-based instead of Java UTF-16 code-unit based. DIV-41: character-literal receivers behave as one-character strings (PTC-Lisp has no Character type) |
| `.intern` | ❌ not_relevant | Intern a Java string | JVM string pool operation; not meaningful on BEAM. |
| `.isEmpty` | 🔲 candidate | Return true for empty string | empty? covers the common PTC-Lisp need. |
| `.lastIndexOf` | ✅ supported | Last substring index | BUG GAP-J05: substring/from-index and integer character-code overloads are unsupported. BUG GAP-J09: non-BMP offsets are grapheme-based instead of Java UTF-16 code-unit based. DIV-41: character-literal receivers behave as one-character strings (PTC-Lisp has no Character type) |
| `.length` | ✅ supported | String length | BUG GAP-J09: non-BMP length is grapheme-based instead of Java UTF-16 code-unit based. DIV-41: character-literal receivers behave as one-character strings (PTC-Lisp has no Character type) |
| `.startsWith` | ✅ supported | Prefix test | BUG GAP-J05: prefix/offset overload is unsupported. DIV-40: character literals are accepted as arguments (PTC-Lisp has no Character type). DIV-41: character-literal receivers behave as one-character strings |
| `.substring` | ✅ supported | Extract substring | BUG GAP-J09: non-BMP indexes are grapheme-based instead of Java UTF-16 code-unit based. DIV-41: character-literal receivers behave as one-character strings (PTC-Lisp has no Character type) |
| `.toLowerCase` | ✅ supported | Lowercase string | DIV-41: character-literal receivers behave as one-character strings (PTC-Lisp has no Character type) |
| `.toUpperCase` | ✅ supported | Uppercase string | DIV-41: character-literal receivers behave as one-character strings (PTC-Lisp has no Character type) |
| `.trim` | 🔲 candidate | Trim leading and trailing whitespace | Common LLM spelling; clojure.string/trim is not currently implemented. |