diff --git a/common/platform/api/quiche_text_utils.h b/common/platform/api/quiche_text_utils.h
index 1a11c2a..44a8a05 100644
--- a/common/platform/api/quiche_text_utils.h
+++ b/common/platform/api/quiche_text_utils.h
@@ -70,12 +70,6 @@
   static bool IsAllDigits(absl::string_view data) {
     return quiche::QuicheTextUtilsImpl::IsAllDigits(data);
   }
-
-  // Splits |data| into a vector of pieces delimited by |delim|.
-  static std::vector<absl::string_view> Split(absl::string_view data,
-                                              char delim) {
-    return quiche::QuicheTextUtilsImpl::Split(data, delim);
-  }
 };
 
 }  // namespace quiche
diff --git a/common/platform/api/quiche_text_utils_test.cc b/common/platform/api/quiche_text_utils_test.cc
index f85f8b0..9d2c4fb 100644
--- a/common/platform/api/quiche_text_utils_test.cc
+++ b/common/platform/api/quiche_text_utils_test.cc
@@ -93,19 +93,5 @@
   EXPECT_TRUE(quiche::QuicheTextUtils::ContainsUpperCase("aBc"));
 }
 
-TEST_F(QuicheTextUtilsTest, Split) {
-  EXPECT_EQ(std::vector<absl::string_view>({"a", "b", "c"}),
-            quiche::QuicheTextUtils::Split("a,b,c", ','));
-  EXPECT_EQ(std::vector<absl::string_view>({"a", "b", "c"}),
-            quiche::QuicheTextUtils::Split("a:b:c", ':'));
-  EXPECT_EQ(std::vector<absl::string_view>({"a:b:c"}),
-            quiche::QuicheTextUtils::Split("a:b:c", ','));
-  // Leading and trailing whitespace is preserved.
-  EXPECT_EQ(std::vector<absl::string_view>({"a", "b", "c"}),
-            quiche::QuicheTextUtils::Split("a,b,c", ','));
-  EXPECT_EQ(std::vector<absl::string_view>({" a", "b ", " c "}),
-            quiche::QuicheTextUtils::Split(" a:b : c ", ':'));
-}
-
 }  // namespace test
 }  // namespace quiche
diff --git a/quic/core/http/quic_receive_control_stream.cc b/quic/core/http/quic_receive_control_stream.cc
index 744e2ec..4f5f1cf 100644
--- a/quic/core/http/quic_receive_control_stream.cc
+++ b/quic/core/http/quic_receive_control_stream.cc
@@ -7,6 +7,7 @@
 #include <utility>
 
 #include "absl/strings/numbers.h"
+#include "absl/strings/str_split.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/http/http_constants.h"
 #include "net/third_party/quiche/src/quic/core/http/http_decoder.h"
@@ -215,9 +216,10 @@
   }
 
   // TODO(b/147306124): Use a proper structured headers parser instead.
-  for (auto key_value :
-       quiche::QuicheTextUtils::Split(frame.priority_field_value, ',')) {
-    auto key_and_value = quiche::QuicheTextUtils::Split(key_value, '=');
+  for (absl::string_view key_value :
+       absl::StrSplit(frame.priority_field_value, ',')) {
+    std::vector<absl::string_view> key_and_value =
+        absl::StrSplit(key_value, '=');
     if (key_and_value.size() != 2) {
       continue;
     }
diff --git a/quic/core/http/spdy_utils.cc b/quic/core/http/spdy_utils.cc
index 0eb05a8..2a888fb 100644
--- a/quic/core/http/spdy_utils.cc
+++ b/quic/core/http/spdy_utils.cc
@@ -9,6 +9,7 @@
 #include <vector>
 
 #include "absl/strings/numbers.h"
+#include "absl/strings/str_split.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flag_utils.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
@@ -32,7 +33,7 @@
     // Check whether multiple values are consistent.
     absl::string_view content_length_header = it->second;
     std::vector<absl::string_view> values =
-        quiche::QuicheTextUtils::Split(content_length_header, '\0');
+        absl::StrSplit(content_length_header, '\0');
     for (const absl::string_view& value : values) {
       uint64_t new_value;
       if (!absl::SimpleAtoi(value, &new_value) ||
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index 587be13..e35a49a 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -16,6 +16,7 @@
 #include "absl/base/optimization.h"
 #include "absl/strings/escaping.h"
 #include "absl/strings/numbers.h"
+#include "absl/strings/str_split.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_framer.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_handshake.h"
@@ -6858,8 +6859,7 @@
 // the string is not found, or is not properly formed, it returns
 // ErrorCode::QUIC_IETF_GQUIC_ERROR_MISSING
 void MaybeExtractQuicErrorCode(QuicConnectionCloseFrame* frame) {
-  std::vector<absl::string_view> ed =
-      quiche::QuicheTextUtils::Split(frame->error_details, ':');
+  std::vector<absl::string_view> ed = absl::StrSplit(frame->error_details, ':');
   uint64_t extracted_error_code;
   if (ed.size() < 2 || !quiche::QuicheTextUtils::IsAllDigits(ed[0]) ||
       !absl::SimpleAtoi(ed[0], &extracted_error_code)) {
diff --git a/quic/core/quic_tag.cc b/quic/core/quic_tag.cc
index ed7ae17..5b38a8b 100644
--- a/quic/core/quic_tag.cc
+++ b/quic/core/quic_tag.cc
@@ -9,6 +9,7 @@
 
 #include "absl/base/macros.h"
 #include "absl/strings/escaping.h"
+#include "absl/strings/str_split.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flag_utils.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_text_utils.h"
@@ -98,7 +99,7 @@
   quiche::QuicheTextUtils::RemoveLeadingAndTrailingWhitespace(&tags_string);
   if (!tags_string.empty()) {
     std::vector<absl::string_view> tag_strings =
-        quiche::QuicheTextUtils::Split(tags_string, ',');
+        absl::StrSplit(tags_string, ',');
     for (absl::string_view tag_string : tag_strings) {
       tag_vector.push_back(ParseQuicTag(tag_string));
     }
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index 4c5571f..6bda82b 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -8,6 +8,7 @@
 
 #include "absl/base/macros.h"
 #include "absl/strings/numbers.h"
+#include "absl/strings/str_split.h"
 #include "net/third_party/quiche/src/quic/core/crypto/quic_random.h"
 #include "net/third_party/quiche/src/quic/core/quic_tag.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
@@ -376,7 +377,7 @@
     absl::string_view versions_string) {
   ParsedQuicVersionVector versions;
   std::vector<absl::string_view> version_strings =
-      quiche::QuicheTextUtils::Split(versions_string, ',');
+      absl::StrSplit(versions_string, ',');
   for (absl::string_view version_string : version_strings) {
     quiche::QuicheTextUtils::RemoveLeadingAndTrailingWhitespace(
         &version_string);
diff --git a/quic/test_tools/qpack/qpack_offline_decoder.cc b/quic/test_tools/qpack/qpack_offline_decoder.cc
index 38cd8fb..267fad3 100644
--- a/quic/test_tools/qpack/qpack_offline_decoder.cc
+++ b/quic/test_tools/qpack/qpack_offline_decoder.cc
@@ -32,6 +32,7 @@
 
 #include "absl/strings/match.h"
 #include "absl/strings/numbers.h"
+#include "absl/strings/str_split.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_file_utils.h"
@@ -77,7 +78,7 @@
 }
 
 bool QpackOfflineDecoder::ParseInputFilename(absl::string_view input_filename) {
-  auto pieces = quiche::QuicheTextUtils::Split(input_filename, '.');
+  std::vector<absl::string_view> pieces = absl::StrSplit(input_filename, '.');
 
   if (pieces.size() < 3) {
     QUIC_LOG(ERROR) << "Not enough fields in input filename " << input_filename;
@@ -286,7 +287,7 @@
     }
 
     absl::string_view header_field = expected_headers_data->substr(0, endline);
-    auto pieces = quiche::QuicheTextUtils::Split(header_field, '\t');
+    std::vector<absl::string_view> pieces = absl::StrSplit(header_field, '\t');
 
     if (pieces.size() != 2) {
       QUIC_LOG(ERROR) << "Header key and value must be separated by TAB.";
diff --git a/quic/tools/quic_toy_client.cc b/quic/tools/quic_toy_client.cc
index 0b34e88..c25411d 100644
--- a/quic/tools/quic_toy_client.cc
+++ b/quic/tools/quic_toy_client.cc
@@ -49,6 +49,7 @@
 #include <vector>
 
 #include "absl/strings/escaping.h"
+#include "absl/strings/str_split.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/quic_packets.h"
 #include "net/third_party/quiche/src/quic/core/quic_server_id.h"
@@ -334,12 +335,12 @@
 
   // Append any additional headers supplied on the command line.
   const std::string headers = GetQuicFlag(FLAGS_headers);
-  for (absl::string_view sp : QuicheTextUtils::Split(headers, ';')) {
+  for (absl::string_view sp : absl::StrSplit(headers, ';')) {
     QuicheTextUtils::RemoveLeadingAndTrailingWhitespace(&sp);
     if (sp.empty()) {
       continue;
     }
-    std::vector<absl::string_view> kv = QuicheTextUtils::Split(sp, ':');
+    std::vector<absl::string_view> kv = absl::StrSplit(sp, ':');
     QuicheTextUtils::RemoveLeadingAndTrailingWhitespace(&kv[0]);
     QuicheTextUtils::RemoveLeadingAndTrailingWhitespace(&kv[1]);
     header_block[kv[0]] = kv[1];
