-
2020-04-30 23:56:37更多相关内容
-
JS中append字符串包含onclick无效传递参数失败的解决方案
2020-10-20 18:56:05主要介绍了JS中append字符串包含onclick无效传递参数失败的解决方案,需要的朋友可以参考下 -
详解pandas.DataFrame中删除包涵特定字符串所在的行
2021-01-20 06:23:31以上所述是小编给大家介绍的pandas.DataFrame中删除包涵特定字符串所在的行详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持! 您... -
【Java踩坑】Cookie中存储时间字符串出现“Cookie值中存在无效字符
2021-04-20 18:18:00前一句是创建Cookie对象,后者则是将对象添加到响应体中,而报错提示为无效字符,因此只能是format字符串的问题,通过查询资料发现,Cookie是禁止使用空格字符的,因此format字符串中的空格被识别为非法字符,那么...错误代码:
package Servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; @WebServlet(value = "/lasttime") public class LastTimeServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); Cookie[] cookies = request.getCookies(); Cookie cookie1 = null; if (cookies != null) { for (Cookie cookie : cookies) { if ("time".equals(cookie.getName())) { cookie1 = cookie; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); String format = sdf.format(date); cookie.setValue(format); response.getWriter().println("上次登陆时间为:" + cookie.getValue()); } } } if (cookie1 == null){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); String format = sdf.format(date); System.out.println(format); Cookie cookie = new Cookie("time",format); response.addCookie(cookie); <----报错位置:java.lang.IllegalArgumentException: Cookie值中存在无效字符[32] response.getWriter().println("你是第一次登录!!"); } } }
报错详情:
错误分析:
通过报错位置之前进行时间字符串进行打印输出发现内容输出正常
因此导致错误的只可能是报错前后的两行代码:
Cookie cookie = new Cookie("time",format); response.addCookie(cookie);
前一句是创建Cookie对象,后者则是将对象添加到响应体中,而报错提示为无效字符,因此只能是format字符串的问题,通过查询资料发现,Cookie是禁止使用空格字符的,因此format字符串中的空格被识别为非法字符,那么解决方法就很简单了解决方法:
为时间格式解析中的空格使用其他合法字符进行替换成功解决:
-
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
2019-08-08 15:36:44给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为...给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:输入: “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:输入: “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:输入: “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
今天刷题碰到这个题目,把这个题目的解题思路跟大家分享一下
分析:看到这个题目时,首先会想到去遍历这个字符串- 当遍历一个新的字符时需要知道是否已经出现过
- 若出现过就得计算当前遍历的子字符的长度,记录下这个长度。
- 若没有出现过,则继续遍历,重复 1 2 3知道遍历结束。
这里有两个重要的难点:当出现重复字符时如何计算字符长度?如何知道遍历的新字符是否出现过,并且出现的位置在哪里?
解决以上两个问题:- 我们定义一个变量startIndex记录子串的起始位置,用当前的遍历的下标(i)减去字符串开始下标(startIndex)就是子串的长度
- 我们需要定义一个义ASCII码值为下标的一个数组,初始化为全-1,代表该字符未出现过
int[] ascii = new int[128];
ascii[0] = -1;…ascii[127]=-1;
遍历字符时,根据字符拿到数组对应的值如果为-1,说明该字符未出现,若不是-1,说明可能出现过,这里为什么说可能出现过呢?因为当我们碰到以当前字符为下标的ASCII数组的值(也就是字符的下标)出现在startIndex的左边,是上一个子字符串出现的对于当前的字符串是无效的。当大于startIndex我们得计算出子串的值,用当前的遍历的下标(i)减去字符串开始下标(startIndex)
看下面一个例子:字符串“gfababfmpo”
g f a b a b f
startIndex: 0 0 0 0 0 3 5
ASCII码: 0 1 2 3 重复 重复
子符串长度: 4
最长度子字符串: 4
当遍历第2个a时,a的下标不是-1,说明重复,计算子字符串长度4-startIndex = 4-0 = 4,更新startIndex = 2+1 = 3,按对应下标更新为4
接下来遍历第2个b,b下标的不是-1,说明重复,计算子字符串长度5-3 =2,不更新最长子字符串。更新startIndex为b下标对应值+1=3+1=4 ,更新b下标的值为5
接下来遍历第二个f,f 下标值不是-1,但是不是已经出现,因为出现startIndex的左边,虽然已经出现过了,但是对于当前的子字符串没有关系,因此当不是-1还要判断是否大于等于startIndex,当两个条件都满足,说明字符重复出现。下面给出代码public class Solution { public static void main(String[] args) { System.out.println(new Solution().lengthOfLongestSubstring("abcabcbb")); } public int lengthOfLongestSubstring(String s) { if (s == null || s.length() <= 0) return 0; if (s.length() == 1) return 1; int[] ascii = new int[128]; //初始化数组为全-1 initArr(ascii); int startIndex = 0; int max = 0; for (int i = 0; i < s.length(); i++) { if (ascii[s.charAt(i)] != -1) { if (ascii[s.charAt(i)] >= startIndex) { //计算当前子串的长度 int len = (i - startIndex); if (len > max) max = len; //重新记录起始下标 startIndex = ascii[s.charAt(i)] + 1; } } ascii[s.charAt(i)] = i; } if (max < (s.length() - startIndex)) max = s.length() - startIndex; return max; } private void initArr(int[] arr) { for (int i = 0; i < arr.length; i++) { arr[i] = -1; } } }
-
java:删除字符串中指定字符串的方法
2021-02-12 18:18:43如果我们删除某一个参数时,往往没有数组或者列表那么方便。但是,如果有了下面这个方法,我们同样可以做好。public class Test3 {/*** @param args*/public static void main(String[] args) {//要切割的字符串...有些字符串是我们存储某种类型名称的,往往有逗号‘,’或者其他符号来分隔。如果我们删除某一个参数时,往往没有数组或者列表那么方便。但是,如果有了下面这个方法,我们同样可以做好。
public class Test3 {
/**
* @param args
*/
public static void main(String[] args) {
//要切割的字符串
String s = "123.jpg,113.jpg,121.jpg,122.jpg,131.jpg";
String sub = "";
System.out.println("编译前:"+s);
//调用方法
sub = s.replaceAll( ",113.jpg|113.jpg,","");//.replaceAll( ",122.jpg|122.jpg,","");
System.out.println("编译后:"+sub);
}
}
打印结果:
编译前:123.jpg,113.jpg,121.jpg,122.jpg,131.jpg
编译后:123.jpg,121.jpg,122.jpg,131.jpg
-
C语言中求字符串的长度
2021-05-19 08:38:38在C语言中求字符串的长度,可以使用sizeof()函数和strlen()函数,后者需要引入string.h (#include )因为C语言字符串是以 \0 结尾表示结束的,如:char str1[] = {'h','e','l','l','o','\0'};使用sizeof(str1) 结果为... -
Java字符串中删除指定子字符串的方法简介
2021-02-12 12:40:25如果我们删除某一个参数时,往往没有数组或者列表那么方便。但是,如果有了下面这个方法,我们同样可以做好。public class Test3 {/*** @param args*/public static void main(String[] args) {//要切割的字符串... -
给定一个只包括各种括号的字符串,判断字符串是否有效。(有效括号问题)(数据结构基础回顾)
2020-06-30 14:35:38给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 ... -
含string的结构体报错:字符串中的字符无效
2019-11-05 14:41:07字符串中的字符无效 分析: string不能使用memset或者memcpy这些低级函数。如果正好工作,那是你比较幸运。c++规定,除了trivially copyable类型可以使用memcpy函数外,其他类型是未定义行为。你new完后string的构造... -
前端字符串内HTML标签无效的处理方式
2020-07-24 09:26:45即可避免转义的问题,将字符串中包含的 HTML标签生效。 <div ref="introContent" class="intro__content">{{intro}}</div> mounted() { // let text = this.$refs.introContent.innerText; // this.$... -
Java中转UTC时间字符串(含有T Z)为local时间
2020-12-29 00:14:36但是最近我在调用一个第三方的接口时返回的 JSON字符串中有个expires字段的值是2014-08-24T09:27:42Z。第一反应肯定是跟时区关联的。那么如何解析成Date类呢?SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-... -
Java如何实现字符串的分割
2021-04-13 15:52:44Java如何实现字符串的分割 前言 本章对Java如何实现字符串的分割,是基于jDK1.8版本中的String.split()方法。 本文篇幅较长,内容较为复杂涉及到许多小细节,都是我在使用时候以及查阅资料时候遇到的坑,建议反复... -
【小航的算法日记】字符串算法(三) - 字符串分割
2022-02-11 11:39:26给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 1: 输入:s = "Hello World" 输出:5 示例 ... -
C++stringstream按空格分割字符串时二次输入无效的解决方案
2020-01-04 13:03:10涉及到把字符串按照空格分割的问题,看到一个简便的方法就是通过stringstream流来处理。 #include<iostream> #include<string> #include<sstream> #include<vector> using namespace ... -
Oracle中判断一个字符串是否为全数字
2018-05-08 11:59:04在一个字段上使用sum()聚合函数的时候报“ORA-01722:无效数字”错误,原因是该字段值有非数字其中一个解决方法是将只要包含非数字的都替换为0select sum(to_number(nvl2(translate(LA_J_B, '/1234567890.', '\'), '0... -
KMP —— 字符串分析算法
2020-11-30 07:34:01`快速`的从一个`主串`中找出一个你想要的`子串` —— 这里面的`主串`就是 `source 串`,而要寻找的 `子串` 就是 `pattern 串` 也叫 `模式串`。 -
C语言中求字符串长度的函数的几种实现方法
2021-05-19 08:02:52C语言中求字符串长度的函数的几种实现方法1.最常用的方法是创建一个计数器,判断是否遇到‘\0',不是'\0'指针就往后加一。int my_strlen(const char *str){assert(str != NULL);int count = 0;while (*str != '\0'){... -
有效的括号: 给定一个只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串,判断字符串是否有效。
2020-10-26 12:04:00给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 ... -
使用列表检查字符串是否包含某个字母或数字
2020-12-06 10:48:48它必须查找由两个字母、三个数字、三个字母组成的序列,否则将返回一个类似“无效邮政编码”的消息我需要知道如何通过与列表比较来检查字符串是否包含某个字母或数字。在到目前为止,我得到的是:# Task 2import ... -
如何彻底清除python中的非法字符字符串?
2020-11-29 20:07:14我的程序有一个特性,用户可以上传一个csv文件,我的程序通过它作为输入。我有一个用户抱怨他的输入出现错误。该错误是由于存在编码错误的非法字符造成的。字符如下:�有时它看起来像一颗带“?”的钻石在中间,... -
【HTML】html中渲染的字符串中包含HTML标签无效的处理方法,字符串中包含HTML标签被转义的问题 解决...
2019-09-29 06:48:15需求如下图: 追加给前台后,效果如下: 可以在源码看到: ...是将后台给出来的数据,直接当作字符串给填充在了前台HTML中。...原来字符串中的<...实际是想将渲染出来的字符串中的... -
VB字符串处理大全
2018-09-16 11:56:531 VBA中的字符串 2 VBA中处理字符串的函数 2.1 比较字符串 2.2 转换字符串 2.3 创建字符串 2.4 获取字符串的长度 2.5 格式化字符串 2.6 查找字符串 2.7 提取字符/字符串 2.8 删除空格 2.9 返回... -
js使用indexOf()判断字符串是否包含某个字符串
2020-09-06 21:59:19js代码: var str = "123456"; if(str.indexOf("5") != -1) { alert("字符串123456里包含了5"); }else{ alert("字符串123456里没有包含5"); } -
LeetCode 字符串(简单题)
2020-03-15 01:37:39答案摘抄自: https://leetcode-cn.com/tag/string/ 13. 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D ... -
JS中判断两个字符串,明明看着相等却判断不相等的问题
2020-06-20 11:13:26两个字符串看起来一样、类型一样,判断str1==str2时返回false; 二、原因 字符串可能含有其他特殊字符:换行符(%D)、空格(%20)…一般不显示。 三、如何判断 encodeURIComponent(str) 可查看字符串完整内容 四、... -
遇见Python | Day 12 Python处理字符串的简单方法
2021-07-16 23:34:48简单介绍使用Python处理字符串。 -
字符串常见bug和解决方法
2018-06-04 22:24:11字符串编码主要遇到两类问题,一类是编码导致的乱码问题,如果有中文,最好全部统一为UTF-8格式,同时注意区分UTF-8有BOM和无BOM的情况。二类问题是一些特殊字符导致的,是否需要转义,或者一些不可见字符导致的问题... -
fastjson-对象转json字符串时保留空字段SerializerFeature无效的问题
2020-12-29 14:18:42将java实体类转换为json字符串,空字段也需要转换。 问题说明 用fastjson将java对象转json字符串时默认去除空字段,网上查阅一番,都说转的时候添加SerializerFeature.WriteNullStringAsEmpty参数就行,亲测了一下,... -
java(3)如何判断字符串是否包括字母?
2019-08-30 22:14:17首先可以通过转换每个字符串成它的ASCII码,因为这个码是唯一的,而且是一一对应 a-z(48-57);A-Z(97-122);0-9(48-57);(下面有具体的表,可以自己查阅) 这时我们需要把字符串转换成ASCII码,通过比较这...