c# 字符串-为什么最后一个for语句里的截取字符语句总是出错,大神们帮帮忙啊。。

问题描述

为什么最后一个for语句里的截取字符语句总是出错,大神们帮帮忙啊。。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TJ
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    private void Form1_Load(object sender, EventArgs e)
    {

    }
    public int Pd(string s)
    {
        int len = s.Length;
        //s=str.Substring(str.Length-i); // or str=str.Remove(0,str.Length-i); k = k.Substring(k.Length-1, 1);
       // string str = s.Substring(s.Length -1,1);
        //s = s.Remove(s.LastIndexOf(","), 1);
       /* if (str==","||str==".")
        {
            s = s.Remove(s.Length - 2,s.Length -1);
        }*/
        ListViewItem li = new ListViewItem();
        for (int i = 0; i < listView1.Items.Count; i++)
        {
            if (listView1.Items[i].SubItems[0].Text == s)
            {
                return 0;
            }
        }
        return 1;
    }
    public int Pdc(string[] sj,string s)
    {
        int tem=0;
        for (int i = 0; i < sj.Length; i++)
        {
            if (s == sj[i])
                tem++;
        }
        return tem;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        string center = txtDate.Text;
        string str = center.ToLower();
        string[] parm = str.Split(' ');
        int len = parm.Length;
        this.listView1.View = View.Details;
        this.listView1.GridLines = true;
        this.listView1.HeaderStyle = ColumnHeaderStyle.Nonclickable;
        this.listView1.Columns.Add("词汇", 120, HorizontalAlignment.Right);
        this.listView1.Columns.Add("出现次数", 120, HorizontalAlignment.Right);
        this.listView1.Visible = true;

        for (int i = 0; i < len; i++)
        {
            string s = parm[i];

            s = s.Remove(s.LastIndexOf(","), 1); 

            int tem = Pd(parm[i]);
            if (tem == 1 && parm[i] != "")
            {
                int m = Pdc(parm, parm[i]);
                string mm = Convert.ToString(m);
                ListViewItem li = new ListViewItem();
                li.SubItems[0].Text = parm[i].ToString();
                li.SubItems.Add(mm);
                this.listView1.Items.Add(li);
            }
        }
        }
    }

}

解决方案

你好,我觉得问题应该出在这里:

string s = parm[i];
s = s.Remove(s.LastIndexOf(","), 1);

首先,s.LastIndexOf(string),会返回string在s中首次出现的位置,若未出现,则返回-1,s.Remove(StartIndex, 1)会在s的StartIndxe位置开始删除1个字符。
IDE报的错误是"StartIndex不能小于0",所以错误原因应该是parm[i]中不包含",",建议楼主检查一下parm[]中的数据。

解决方案二:

 private void button1_Click(object sender, EventArgs e)
{
        this.listView1.View = View.Details;
        this.listView1.GridLines = true;
        this.listView1.HeaderStyle = ColumnHeaderStyle.Nonclickable;
        this.listView1.Columns.Add("词汇", 120, HorizontalAlignment.Right);
        this.listView1.Columns.Add("出现次数", 120, HorizontalAlignment.Right);
        this.listView1.Visible = true;
        var query = txtDate.Text.ToLower().Split(' ').GroupBy(x => x);
                foreach (var item in query)
                {
                    ListViewItem li = new ListViewItem();
                        li.Text = item.Key.ToString();
            li.SubItems[0].Text = item.Count().ToString();
            this.listView1.Items.Add(li);
                }
}

解决方案三:

我觉得你应该描述下什么错误

解决方案四:

每次运行都出现这样的错误

时间: 2024-12-26 20:58:29

c# 字符串-为什么最后一个for语句里的截取字符语句总是出错,大神们帮帮忙啊。。的相关文章

xna-拜托拜托,各位大神,帮帮忙吧,小女请教各位大神一个关于FbxImporter的问题~~~

问题描述 拜托拜托,各位大神,帮帮忙吧,小女请教各位大神一个关于FbxImporter的问题~~~ 一个关于FbxImporter的问题,visual studio 2012里面的XNA的 windows game project,真的要崩溃了,处理了很久,找的很久的问题,都不知道是为什么~~~ 求各位大侠了,知道的话帮我指点指点吧~~ 解决方案 其实我就像在做游戏一样,之前用过dirextX但是没什么时间了,就还是选择了XNA,monogame其实也可以,blender建的3D摸,显示而已~~

dll动态库-如何用函数实现动态库里的对话框的背景颜色,背景图片,求大神们帮帮忙!!!

问题描述 如何用函数实现动态库里的对话框的背景颜色,背景图片,求大神们帮帮忙!!! MFC里或者VC++6.0一个动态库里含有一个对话框,我想用几个函数实现①动态库里的对话框的背景颜色和背景图片,②还有就是隐藏背景图片,③隐藏对话框,④在对话框相应的位置显示文字,⑤并能设置文字的字体和颜色.

大神们帮帮忙啊!帮忙设计一个平时成绩管理系统

问题描述 毕业设计题目:基于Web的平时成绩管理系统的设计与实现注意是平时成绩,就是签到的成绩,平时作业和实验报告的成绩.不是期末成绩实在是不会做啊,哪位大神可以帮帮我,可以有偿.可以的话联系我qq:291167335 解决方案 解决方案二:已经到找到人做了,谢谢解决方案三:那分给我吧

map-请各位大神,帮我重点解释下if条件语句里是什么意思? 然后再解释下这段代码,非常感激

问题描述 请各位大神,帮我重点解释下if条件语句里是什么意思? 然后再解释下这段代码,非常感激 请各位大神,帮我重点解释下if条件语句里是什么意思?然后再解释下这段代码,非常感激 private Map yearMap; private String curyear = """"; public String getList() throws Exception { if ("""".equals(curyear)) { cu

网易新闻选择列表里面的cell移动怎么做,自己找了一个方法,但是不怎么会用, 求各位大神帮忙。

问题描述 网易新闻选择列表里面的cell移动怎么做,自己找了一个方法,但是不怎么会用, 求各位大神帮忙. -collectionView:(UICollectionView *)collectionView moveItemAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{} 解决方案 看下帮助文档,有函数参数的

有没有会编写c程序的大神,帮我看看两个单独的程序怎么合成一个程序,谢谢

问题描述 有没有会编写c程序的大神,帮我看看两个单独的程序怎么合成一个程序,谢谢 #include #include struct e { char a[10]; char b[10]; }z; int main() { int t=0; char s[10],d[10]; FILE *p; void as(); if ((p=fopen("m.txt","r+"))==NULL) { p=fopen("m.txt","w+"

在传智播客下了一个web项目,但是报错,请各位大神指教(初学java)

问题描述 在传智播客下了一个web项目,但是报错,请各位大神指教(初学java) log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog). log4j:WARN Please initialize the log4j system properly. 2015-9-23 14:16:25 org.apache.catalina.core.StandardWrapperValve invoke 严重:

android: 遇到了一个eclipse工程转到studio上的问题?求大神帮解决

问题描述 android: 遇到了一个eclipse工程转到studio上的问题?求大神帮解决 我在把项目由eclipse导到studio的时候遇到了一个问题,如下: Error:Execution failed for task ':app:transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessExce

java-读取个Excel文档,再根据条件输出到txt里,用Java写,求大神相助

问题描述 读取个Excel文档,再根据条件输出到txt里,用Java写,求大神相助 读取个Excel文档,再根据条件输出到txt里,怎么控制输出格式呢,希望大神帮忙,了啦啦啦啦啦! 解决方案 用poi吧,先读取excel表格数据,然后再写入到txt里面; 给你个案例你看看 public class CreateExcel { private static List getstudent() throws Exception{ List list=new ArrayList(); SimpleDa